Hibernate / Toplink在JPA之上提供什么?

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

Hibernate提供的JPA本身没有什么?

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

此外,JPA规范有点弱,它只提供Hibernate和TopLink等function的一部分function。 有时,超出JPA并使用底层实现的专有function是可取的或必要的。

您应该对JPA1进行比较,然后对JPA2进行比较(尚未最终,但有一个规范),并查看您希望在应用程序中使用的function,以查看JPA是否支持任何function。 这是评估是否可以使用纯JPA的唯一合理方法。 持久性技术的所有实现都有自己的附加function,可能对您的应用程序有很大的意义,但它们可能也没有。 评估应用程序中对象之间的关系类型。 为了帮助您入门,您使用的是接口字段吗? JPA不支持接口定义的关系。 JPA1不支持1-N uni dir FK关系,但这是在JPA2中。

–Andy( DataNucleus )