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

Sac*_*n J 0 hibernate jpa

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

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

xyz*_*xyz 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实体管理器获取Session对象并且现在你和hibernate项目一样好.

但是现在你的代码依赖于特定impl(Hibernate),你可以看到更多东西在JPA(2.0)中添加

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

来源链接