哪一个更好:JPA或Hibernate注释?

时间:2012-09-10 12:03:18

标签: hibernate jpa

我对这两个注释API感到困惑。 我用Google搜索并了解JPA是接口,Hibernate注释是实现。 是吗?

但是我应该在我的项目中使用哪一个?哪一个更好,为什么?

2 个答案:

答案 0 :(得分:6)

我会选择JPA,因为您可以随时通过更改单行来轻松更改实现(即JPA供应商).Hibernate和其他供应商(如OpenJPA,Toplink)提供了JPA标准的实现。 关于注释,JPA和Hibernate都提供对javax.persistence注释的支持。

JPA vs Hibernate

  

a)JPA是您的代码应该使用的持久性Api。

     

b)JPA Api会将呼叫传递给实际的执行提供者   (例如:Hibernate / TopLink)来做实际的工作。

     

c)如果你从表演的角度看,那就是   依赖于实际的持久性提供程序(Hibernate / TopLink)而不是   JPA只是一个包装层。

     

d)如果你从代码依赖性的角度看,JPA会做得更多   因为你的代码依赖于标准的Java Api。

     

e)如果您使用过Hibernate,那么您会发现某些功能   在JPA中缺少标准查询等。这并不意味着   你不能在你的应用程序中编写条件查询,你需要得到   来自JPA实体经理的会话对象,现在你就像在   hibernate项目。

     

但现在你的代码依赖于特定的impl(Hibernate)了   转发你可以在JPA(2.0)

中看到更多的东西      

f)你应该使用JPA:我应该接受,API是干净的   虽然不是你需要的是他们,但是向前迈出了一大步。

Source Link

答案 1 :(得分:2)

基本上,Hibernate实现了JPA规范,并且还增加了更多特性。所以Hiberate特定的注释是那些添加的功能。所以你使用JPA注释直到你遇到强制你使用Hibernate特定功能的映射,然后你需要使用他们的注释来获得这些功能。