我是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
答案 0 :(得分:1)
简单来说 - JPA 是一个界面,而 Hibernate 是它的实现。因此,最好的方法是使用 JPA 2 注释 - 在这种情况下,规则针对接口的代码,而不是实现。