Java Hibernate库和Hibernate JPA库的区别

Java Hibernate库和Hibernate JPA库的区别,java,hibernate,Java,Hibernate,在可以将Hibernate库添加到项目的屏幕中,有两个选项:Hibernate和Hibernate JPA 这两种方法的区别是什么?谷歌没有提供解释。我不知道你说的“屏幕”是什么意思,但一般来说,你可以直接使用Hibernate(HibernateAPI)或作为一个提供者。由于JPA是一个标准API,人们可以根据这个API编码并在实现之间切换(Hibernate、EclipseLink、OpenJPA等等)。当使用HibernateAPI时,您与此相关,但您可以利用JPA未标准化的功能。我发现这

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


这两种方法的区别是什么?谷歌没有提供解释。

我不知道你说的“屏幕”是什么意思,但一般来说,你可以直接使用Hibernate(HibernateAPI)或作为一个提供者。由于JPA是一个标准API,人们可以根据这个API编码并在实现之间切换(Hibernate、EclipseLink、OpenJPA等等)。当使用HibernateAPI时,您与此相关,但您可以利用JPA未标准化的功能。

我发现这是一个很好的解释。

从上述博客: 因此,如果我需要用简洁的话:

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

b) JPAAPI将把调用传递给实际的peristence提供者(例如:Hibernate/TopLink)来完成实际的工作

c) 如果您从性能的角度来看,它将依赖于实际的Perience提供者(Hibernate/TopLink),而不是JPA,因为它只是一个包装层

d) 如果您从代码依赖性的角度来看,JPA更有意义,因为您的代码依赖于标准JavaAPI

e) 如果您使用了Hibernate,那么您会发现JPA中缺少某些功能,如条件查询等。这并不意味着您不能在应用程序中编写条件查询,您需要从JPA实体管理器中获取会话对象,现在您已经和Hibernate项目中一样好了

但是现在您的代码依赖于特定的impl(Hibernate),今后您可以看到在JPA(2.0)中添加了更多内容

f) 你们是否应该使用JPA:我的观点是你们应该,API是干净的,尽管你们需要的不是每件事都是他们的,但这是向前迈出的一大步