什么是JPA和JDO规范之间的区别?

时间:2009-12-10 05:53:44

标签: java orm jpa jdo

我一直在使用Hibernate ORM,它是JPA规范的一个实现,用于管理关系数据。我也听说过应该做同样的JDO规范(管理关系数据)。

两者之间的根本区别是什么?最受欢迎的代码示例。 JDO如何与其他Java技术堆栈集成,例如EJB3

2 个答案:

答案 0 :(得分:11)

试试这些 JDO-JPA FAQJDO or JPAJDO .v. JPAJDO .v. JPA - APIJDO .v. JPA - ORM

JDO早在JPA之前就已存在,并且范围更广。 JPA仅用于RDBMS,(即使在JPA2中)也不提供JDO提供的完全支持。这个论坛中的链接和其他帖子应该提供充分的解释来解释论据的各个方面。

- 安迪(DataNucleus

答案 1 :(得分:2)

JPA被定义为统一并替换以前现有的Java CMP和JDO的Java持久性规范。 JPA作为EJB 3.0的一部分发布,是Oracle WebLogic,IBM Websphere,Redhat JBoss和任何其他Java EE提供程序支持的Java EE规范的一部分。

有许多领先的产品支持JPA(TopLink / EclipseLink,Hibernate,OpenJPA,DataNucleus),但很少有人支持JDO或CMP。所以,似乎JPA在替换两者方面做得很好。

至于JPA只是RDBMS,这完全是假的,(即使DataNucleus是我所知道的唯一剩余的JDO产品,它支持任何支持JDO的非关系平台上的JPA)。

还有许多其他产品在非关系平台上支持JPA,例如EclipseLink的NoSQL和EIS支持(MongoDB,Oracle NoSQL,XML,遗留数据库),Kundera,DataNucleus,甚至包括支持JPA的ObjectDB等对象数据库他们的Java API。