Hibernate库和Hibernate JPA库之间的区别

时间:2011-09-15 06:31:43

标签: java hibernate

在可以将Hibernate库添加到项目的屏幕中,有两个选项,Hibernate和Hibernate JPA。

2之间有什么区别?谷歌搜索没有提供解释。

2 个答案:

答案 0 :(得分:4)

我发现这提供了一个很好的解释。 http://elope.wordpress.com/2007/09/06/difference-between-jpa-and-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是干净的,虽然不是你需要的,但是向前迈出了一大步。

答案 1 :(得分:1)

我不知道你的意思是什么“屏幕”,但一般来说你可以直接使用Hibernate(Hibernate API)或JPA提供程序。由于JPA是标准API,因此可以针对此API进行编码并在实现之间切换(Hibernate,EclipseLink,OpenJPA,...)。使用Hibernate API时,您可以使用它,但您可以使用JPA未标准化的功能。

相关问题