我一直在使用Hibernate ORM,它是JPA规范的实现,用于管理关系型数据。我也听说过JDO规范,它也可以做同样的事情(管理关系型数据)。 这两者之间有什么根本区别?非常感谢任何代码示例。JDO如何与其他Java技术栈集成,例如EJB3?
尝试使用以下链接进行了解: JDO-JPA FAQ JDO或JPA JDO与JPA的区别 JDO与JPA的API对比 JDO与JPA的ORM对比 JDO比JPA存在更久,并且具有更广泛的应用范围。 JPA仅适用于关系型数据库,并且即使在JPA2中,也没有提供像JDO所提供的完整支持。 这些链接以及论坛中的其他文章应该足以解释争议的各个方面。 --Andy (DataNucleus)
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只能是关系型数据库,那是完全错误的(即使DataNucleus,我所知道的仅剩的JDO产品,在任何它支持JDO的非关系平台上也支持JPA)。还有许多其他产品支持在非关系平台上使用JPA,例如EclipseLink的NoSQL和EIS支持(MongoDB,Oracle NoSQL,XML,旧版数据库),Kundera,DataNucleus,甚至像ObjectDB这样支持JPA作为其Java API的对象数据库。