Arj*_*jms 29
这两者完全不同.
EJB3是一个组件模型,它本身与ORM没有直接关系.它有助于轻松管理事务,并使您可以从JPA轻松访问实体管理器,JPA是Java EE中的标准化ORM解决方案.
Hibernate (3)确实是一个ORM解决方案,并且它实现了一个实现JPA的解决方案.
因此,更合乎逻辑的问题是,是使用标准化的JPA接口,还是直接使用Hibernate核心API.然后一个后续问题可能是使用JPA独立,还是与EJB 3结合使用.
答案取决于您需要的内容,但通常将JPA与EJB 3结合使用是最简单的解决方案.使用JPA或Hibernate独立版需要更详细的代码,并且您需要手动管理事务,这可能很麻烦.
JPA与Hibernate是另一场辩论.JPA具有标准化接口的优点,因此更多开发人员可能会熟悉它.另一方面,本机Hibernate API总是JPA的超级集合,因此提供更多功能.
通常,开发人员主要将其代码基于JPA,然后在有意义的情况下使用一些特定于Hibernate的注释或API调用.在99.99%的情况下,支持这种混合API使用.
还要注意Glassfish EclipseLink与Hibernate 捆绑在一起,而不是捆绑在一起.EclipseLink可以与Hibernate相媲美,但是它已经超过了十年.Hibernate从EclipseLink(后来称为TopLink)中花了很多钱.
另请参阅我给出的类似问题的答案:通过JPA Vs访问数据库表.Web应用程序中的EJB
你问的是哪个API更好:EJB3(JPA)还是Hibernate?我说是因为你问的是EJB3 JPA(仅限API)和Hibernate(实现和API).因此,要比较苹果和苹果,您需要比较API.您可以选择标准(JPA)和更强大的专有API(Hibernate).
但是通过选择JPA,还有另一种选择:实现它.通过选择Hibernate实现,您可以基本上丢弃您的问题,因为JPA和Hibernate都可用.
所以你的问题会改变:我应该选择哪个JPA实现(在Hibernate,EclipseLink,OpenJPA,DataNucleus等之间)?...
| 归档时间: |
|
| 查看次数: |
15367 次 |
| 最近记录: |