Hibernate和JPA之间的区别是一样的,相反,JPA只是一个规范,这意味着没有实现,而Hibernate是一个实现。
您可以使用 JPA 注释对类进行批注,但是如果没有实现,则不会发生任何事情。
以抽象的方式,您可以将“JPA”视为准则。
当您将Hibernate与JPA一起使用时,您实际上是在使用Hibernate by JPA实现。这样做的好处是,你可以把Hibernate的JPA实现换成JPA规范的另一个实现(Eclipse Link,DataNucleuse,..),否则如果你直接使用Hibernate,你就不能切换到另一个ORM。
我希望它有帮助。
JPA不是ORM实现,而只是实现对象关系映射(ORM)的指南,并且没有实现的基础代码。它不会为您的应用程序提供任何具体功能。其目的是提供一组规则和准则,JPA实现供应商可以遵循这些规则和准则,以标准化的方式创建ORM实现。
Hibernate 是一个 JPA 提供程序。当规范有新的更改时,休眠将发布其JPA规范的更新实现。其他流行的 JPA 提供程序包括 Eclipse Link(参考实现)、OpenJPA 等。
@javax.persistence.Entity
是实施 JPA 指南的提供商的指南
@org.hibernate.annotations.Entity
是休眠 ORM 的实现
此外,您可以看到这个其他主题