12

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

两者的根本区别是什么?任何代码示例最受赞赏。JDO如何与其他 Java 技术栈(例如EJB3 )集成?

4

2 回答 2

11

试试这些 JDO-JPA FAQJDO 或 JPAJDO .v。JPA , JDO .v. JPA-API , JDO .v。JPA-ORM

JDO早在JPA之前就存在了,而且范围更广。JPA 仅用于 RDBMS,并且(即使在 JPA2 中)不提供 JDO 提供的全部支持。本论坛中的链接和其他帖子应提供充足的阅读材料来解释论点的各个方面。

——安迪(数据

于 2009-12-10T06:29:12.450 回答
2

定义 JPA 是为了统一和替换以前存在的 EJB 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,甚至对象数据库(如 ObjectDB)支持 JPA 作为其 Java API .

于 2012-03-19T15:09:54.280 回答