3

据我所知,JPA 本身提供了所有闪亮的特性,如 ORM、JPQL、实体关系映射等。但我真的不明白,为什么人们在 JPA 之上使用 Hibernate 或 Toplink。

Hibernate 提供了哪些 JPA 本身没有的功能?

4

2 回答 2

8

JPA 只是一个规范。Hibernate 和 TopLink 是该规范的实现。

此外,JPA 规范有点弱,它只提供了 Hibernate 和 TopLink 等提供的功能的子集。有时需要或有必要超越 JPA 并使用底层实现的专有特性。

于 2009-10-01T11:40:42.237 回答
2

您应该先与 JPA1 进行比较,然后再与 JPA2(尚未最终确定,但有一个规范)进行比较,并查看您希望在应用程序中使用的功能,看看是否有 JPA 不支持的功能。这是评估您是否可以使用纯 JPA 的唯一明智方法。持久性技术的所有实现都有自己的附加组件,这些附加组件可能对您的应用程序有很大的意义,但也可能不是。针对对象之间的关系类型评估您的应用程序。为了让您开始,您是否使用接口字段?JPA 不支持接口定义的关系。JPA1 不支持 1-N uni dir FK 关系,但这在 JPA2 中。

——安迪(数据

于 2009-10-02T07:51:39.403 回答