答案 0 :(得分:11)
试试这些 JDO-JPA FAQ, JDO or JPA, JDO .v. JPA, JDO .v. JPA - API, JDO .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。