1

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

4

4 回答 4

4

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

现代方法

要将 hibernate 与 glassfish 一起使用,您所要做的就是将 hibernate 及其依赖项放入您的 EAR 文件中。这也可能与 WAR 文件一起使用。

在您的 persistence.xml 中,使用此标记指定休眠:

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

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

<properties>
  <property name="hibernate.hbm2ddl.auto" value="none"/>
</properties>
于 2010-04-02T18:29:27.780 回答
2

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

于 2009-02-27T09:28:21.850 回答
2

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

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

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

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

于 2009-02-27T09:41:20.583 回答
2

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

于 2011-01-15T19:55:15.303 回答