是否可以将hibernate用作Glassfish的持久性提供程序,如果可以的话?
答案 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。