【发布时间】:2010-10-10 07:03:31
【问题描述】:
是否可以使用 hibernate 作为 Glassfish 的持久性提供程序,如果可以,如何?
【问题讨论】:
标签: hibernate jpa persistence glassfish ejb-3.0
是否可以使用 hibernate 作为 Glassfish 的持久性提供程序,如果可以,如何?
【问题讨论】:
标签: hibernate jpa persistence glassfish ejb-3.0
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>
【讨论】:
虽然我不是 Glassfish 或 Hibernate 方面的专家,但我认为您可能会觉得这很有趣:Instructions on using Hibernate in Glassfish
【讨论】:
是的,这是一种常见的情况。只需将 Hibernate(及其所有依赖项)全局部署到 Glassfish 中或作为应用程序的一部分。 然后使用 Hibernate 作为库来实现您的应用程序。
您必须考虑的下一个问题是您是否要使用 JPA,并将 Hibernate 作为 JPA 提供者,或者您是否要使用 Hibernate plain。
如果您想使用 EJB 和实体 Bean,那么还有一个问题。如果是,我会推荐使用 JPA。
如果您不使用 EJB 实体 Bean,则可以使用 JPA 或普通 Hibernate 来持久化您的 POJO。
【讨论】:
您可以构建一个 EAR 并将它们包含在 EAR 的 lib 目录中,而不是将 Hibernate 库放在 Glassfish 服务器的 lib 目录中。我刚刚发布了一篇关于我们使用这种方法的经验的博客文章。 IMO 最好将 Hibernate 与应用程序本身捆绑在一起,而不是更改服务器的全局配置。通过这样做,它不会影响也可能在同一服务器上运行的其他应用程序(例如,遗留应用程序)。请参阅this 了解更多信息。
【讨论】: