JPA 2和Hibernate之间有什么关系?

时间:2015-01-02 10:46:49

标签: java hibernate jpa orm jpa-2.0

我是Java ORM世界的新手,我对 JPA 2 Hibernate 之间的关系和差异有些怀疑。

在我看来,文档中 JPA2 规范,而 Hibernate 是此规范的特定实现。这是真的吗?究竟什么意味着JPA 2是一个规范?什么是规格?我认为它提供了一些接口(或类似的东西),其中定义了在DB上执行操作的常见必需行为(例如:insert,delete,select,upodate operations,etcetc)。

所以我认为 JPA2 提供了一个常用操作列表和未实现的方法来执行它,而像 Hibernate 这样的ORM框架实现了它。

是真的还是我错过了什么?所以这意味着我不能在某种独立版本中使用 JPA 2 ,因为它没有实现,但同时我可以将Hibernate用作独立工具(使用JPA进行白化)?

所以在我看来,我可以单独使用 Hibernate 并绑定到 JPA 2

所以这意味着我可以使用 JPA 2 对我的班级进行注释,但如果我也不使用其中一个实现,那么什么都不会发生?

使用 Hibernate 绑定到 JPA 2 的好处是什么?我认为这是与标准化相关的事情以及交换Hibernate并使用其他实现替换它而不更改我的代码的可能性。但是在独立版本中使用Hibernate与JPA 2绑定的主要区别是什么?与使用Hibernate独立版本相比,JPA 2为我提供了更多功能或限制了我的尊重?我的功能少了吗?

TNX

1 个答案:

答案 0 :(得分:1)

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