据我所知,JPA本身提供了所有闪亮的功能,如ORM,JPQL,实体关系映射等。但我真的不明白,为什么人们在JPA之上使用Hibernate或Toplink。
Hibernate提供的JPA本身没有什么?
答案 0 :(得分:8)
JPA只是一个规范。 Hibernate和TopLink是该规范的实现。
此外,JPA规范有点弱,它只提供Hibernate和TopLink等功能的一部分功能。有时需要超越JPA并使用底层实现的专有功能。
答案 1 :(得分:2)
您应该对JPA1进行比较,然后对JPA2进行比较(尚未最终,但有一个规范),并查看您希望在应用程序中使用的功能,以查看JPA是否支持任何功能。这是评估是否可以使用纯JPA的唯一明智方法。持久性技术的所有实现都有自己的附加功能,可能对您的应用程序有很大的意义,但它们可能也没有。评估应用程序中对象之间的关系类型。为了帮助您入门,您使用的是接口字段吗? JPA不支持接口定义的关系。 JPA1不支持1-N uni dir FK关系,但这是在JPA2中。
- 安迪(DataNucleus)