Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JPA2和Hibernate之间的关系是什么?_Java_Hibernate_Jpa_Orm_Jpa 2.0 - Fatal编程技术网

Java JPA2和Hibernate之间的关系是什么?

Java JPA2和Hibernate之间的关系是什么?,java,hibernate,jpa,orm,jpa-2.0,Java,Hibernate,Jpa,Orm,Jpa 2.0,我是Java ORM领域的新手,我对JPA2和Hibernate之间的关系和差异有一些疑问 在阅读文档时,我觉得JPA2是一个规范,而Hibernate是该规范的一个具体实现。这是真的吗?什么确切地说JPA2是一个规范?什么是规范?我认为它提供了一些接口(或类似的接口),其中定义了在DB上执行操作所需的常见行为(例如:插入、删除、选择、上传操作等) 因此,我认为JPA2提供了一个常见操作列表和执行该操作的未实现方法,并且像Hibernate这样的ORM框架实现了它 这是真的还是我遗漏了什么?这意

我是Java ORM领域的新手,我对JPA2Hibernate之间的关系和差异有一些疑问

在阅读文档时,我觉得JPA2是一个规范,而Hibernate是该规范的一个具体实现。这是真的吗?什么确切地说JPA2是一个规范?什么是规范?我认为它提供了一些接口(或类似的接口),其中定义了在DB上执行操作所需的常见行为(例如:插入、删除、选择、上传操作等)

因此,我认为JPA2提供了一个常见操作列表和执行该操作的未实现方法,并且像Hibernate这样的ORM框架实现了它

这是真的还是我遗漏了什么?这意味着我不能在某种独立版本中使用JPA2,因为它没有实现,但同时我可以使用Hibernate作为独立工具(不使用JPA)

因此,在我看来,我可以在独立和绑定到JPA2的情况下使用Hibernate

这意味着我可以用JPA2注释我的类,但是如果我不同时使用它的一个实现,什么都不会发生

使用Hibernate绑定到jpa2的好处到底是什么。我认为这与标准化有关,与替换Hibernate并使用另一个实现替换它的可能性有关,而无需对代码进行任何更改。但是在独立版本中使用Hibernate和绑定到JPA2的主要区别是什么?与使用Hibernate独立版本相比,JPA2提供了更多的功能或限制了我的尊重?我有更少的功能吗


Tnx

简单地说-JPA是一个接口,而Hibernate是它的实现。因此,最好的方法是使用JPA2注释——在这种情况下,规则代码是针对接口的,而不是应用于实现的。

我认为这篇文章很好地澄清了您的问题: