是否可以将hibernate用作Glassfish的持久性提供程序?

时间:2009-02-27 09:20:27

标签: hibernate jpa persistence glassfish ejb-3.0

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

4 个答案:

答案 0 :(得分:4)

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

  

现代化方法

     

使用玻璃鱼休眠,全部   你要做的就是把hibernate和   它依赖于您的EAR文件。   这也可能与WAR文件一起使用。

     

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

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:2)

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

您需要考虑的下一个问题是,您是要使用JPA,还是将Hibernate用作JPA提供程序,或者是否要使用Hibernate plain。

如果您想使用EJB和Entity Bean,那么另一个问题。如果是,我会建议使用JPA。

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

答案 3 :(得分:2)

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