一尘不染

EJB 3或Hibernate 3

hibernate

关于将由完整的Java EE应用程序服务器(例如GlassFish)提供服务的Java EE Web应用程序,这是最佳的 ORM 解决方案吗?
EJB 3Hibernate 3 为什么?


阅读 336

收藏
2020-06-20

共1个答案

一尘不染

这两个完全不同。

EJB3是一个组件模型,与ORM直接无关。它确实有助于轻松管理事务,并使您可以轻松地从JPA访问实体管理器,JPA是Java
EE中的标准化ORM解决方案。

Hibernate (3)确实是一种ORM解决方案,并且碰巧它实现了JPA。

因此,更逻辑的问题是使用标准化的JPA接口还是直接使用Hibernate核心API。接下来的问题可能是是独立使用JPA还是与EJB 3结合使用。

答案在某种程度上取决于您的确切需求,但是通常将JPA与EJB
3结合使用是最简单的解决方案。独立使用JPA或Hibernate需要更多冗长的代码,并且您必须手动管理事务,这可能很麻烦。

JPA vs Hibernate是另一场辩论。JPA具有标准化接口的好处,因此更多的开发人员可能会熟悉它。另一方面,本地Hibernate
API始终是JPA的超集,因此提供了更多功能。

通常,开发人员主要将代码基于JPA,然后在有意义的地方使用一些特定于Hibernate的注释或API调用。在99.99%的情况下,支持使用这种混合API。

另请注意,Glassfish与捆绑在一起EclipseLink,而不与Hibernate
捆绑在一起。EclipseLink可与Hibernate相提并论,但早在十多年之前就已经有了。Hibernate从EclipseLink(当时称为TopLink)中获得了很多收益。

2020-06-20