【问题标题】:Is it possible to use hibernate as Glassfish's persistence provider?是否可以使用 hibernate 作为 Glassfish 的持久性提供程序?
【发布时间】:2010-10-10 07:03:31
【问题描述】:

是否可以使用 hibernate 作为 Glassfish 的持久性提供程序,如果可以,如何?

【问题讨论】:

    标签: hibernate jpa persistence glassfish ejb-3.0


    【解决方案1】:

    link provided by Guss to hibernate.org 已过期。这是 2010 年 2 月 20 日的谷歌缓存。正如之前版本的链接 wiki 页面中所述,最好将休眠库保存在您的 .ear / .war 而不是 Glassfish 安装目录中,以便不同的应用程序可以使用它们的自己的 Hibernate 版本。

    现代方法

    要在 glassfish 中使用休眠,所有 你要做的就是把休眠和 将其依赖项添加到您的 EAR 文件中。 这也可能与 WAR 文件一起使用。

    在您的 persistence.xml 中,指定 使用这个标签休眠:

    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    

    你也可以指定休眠 像往常一样的属性,例如:

    <properties>
      <property name="hibernate.hbm2ddl.auto" value="none"/>
    </properties>
    

    【讨论】:

      【解决方案2】:

      虽然我不是 Glassfish 或 Hibernate 方面的专家,但我认为您可能会觉得这很有趣:Instructions on using Hibernate in Glassfish

      【讨论】:

      • 干杯格斯。我自己也遇到了。我什至在谷歌搜索之前就开始发布问题。不过,这是跟踪您的想法的好方法。我会告诉你我的进展情况。
      • @Guss 很遗憾链接不再起作用。我似乎找不到那个。我发现的所有内容都只是说将它们放在 glassfish lib 文件夹中。
      【解决方案3】:

      是的,这是一种常见的情况。只需将 Hibernate(及其所有依赖项)全局部署到 Glassfish 中或作为应用程序的一部分。 然后使用 Hibernate 作为库来实现您的应用程序。

      您必须考虑的下一个问题是您是否要使用 JPA,并将 Hibernate 作为 JPA 提供者,或者您是否要使用 Hibernate plain。

      如果您想使用 EJB 和实体 Bean,那么还有一个问题。如果是,我会推荐使用 JPA。

      如果您不使用 EJB 实体 Bean,则可以使用 JPA 或普通 Hibernate 来持久化您的 POJO。

      【讨论】:

        【解决方案4】:

        您可以构建一个 EAR 并将它们包含在 EAR 的 lib 目录中,而不是将 Hibernate 库放在 Glassfish 服务器的 lib 目录中。我刚刚发布了一篇关于我们使用这种方法的经验的博客文章。 IMO 最好将 Hibernate 与应用程序本身捆绑在一起,而不是更改服务器的全局配置。通过这样做,它不会影响也可能在同一服务器上运行的其他应用程序(例如,遗留应用程序)。请参阅this 了解更多信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-11-04
          • 2012-06-21
          • 1970-01-01
          • 2015-07-01
          • 2017-01-17
          • 2014-12-15
          • 1970-01-01
          • 2012-07-09
          相关资源
          最近更新 更多