Hibernate库和Hibernate JPA库之间的区别

4

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

这两者之间有什么区别?谷歌搜索并没有提供解释。

2个回答

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项目中一样好了。
但现在您的代码依赖于特定的实现(Hibernate),未来您会看到更多的东西添加到JPA(2.0)中。

f) 是否应该使用JPA:我的看法是你应该使用,API很干净,虽然不是所有你需要的都在那里,但这是一个很好的前进步骤。


1

我不知道你指的是什么“屏幕”,但通常你可以直接使用Hibernate(Hibernate API)或作为JPA提供程序。由于JPA是一个标准API,因此可以针对此API编写代码并在实现之间切换(Hibernate、EclipseLink、OpenJPA等)。当使用Hibernate API时,你会受到限制,但可以利用JPA未标准化的功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接