我对这两个注释API感到困惑.我用Google搜索并了解JPA是接口,Hibernate注释是实现.是对的吗?
但是我应该在我的项目中使用哪一个?哪一个更好,为什么?
我会选择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是干净的,虽然不是你需要的是他们,但是向前迈出了一大步.
| 归档时间: |
|
| 查看次数: |
3569 次 |
| 最近记录: |