正如您所说的,JPA只是一个规范,意味着没有实现。您可以根据需要使用JPA批注对类进行批注,但是如果没有实现,则什么也不会发生。可以将JPA视为必须遵循的准则或接口,而Hibernate的JPA实现是符合JPA规范定义的API并提供底层功能的代码。
当将Hibernate与JPA一起使用时,实际上是在使用Hibernate JPA实现。这样做的好处是您可以将Hibernate的JPA实现换成JPA规范的另一种实现。当您使用直接的Hibernate时,由于其他ORM可能使用不同的方法/配置和注释,因此您将锁定在实现中,因此您不能仅切换到另一个ORM。



