Java Data Objects: Difference between revisions

Content deleted Content added
Line 12:
[[Enterprise Java Beans]] 3.0 (EJB3) specification also covered persistence, as had EJB v2 with Entity Beans. There has been standards conflict between the two standards bodies in terms of pre-eminence. JDO has several commercial implementations.
 
In the end, persistence has been "broken out" of "EJB3 Core", and a new standard formed, the [[Java Persistence API]] (JPA). JPA uses the <code>javax.persistence</code> package, and is specified in a separate document within the EJB3 [http://www.jcp.org/en/jsr/detail?id=220 JSR 220]. Significantly, <code>javax.persistence</code> will '''not''' require an EJB container, and thus will work within a Java SE environment as well, as JDO always has. JPA, however, is an [[Object-relational mapping]] (ORM) standard, while JDO is both an [[Object-relational mapping]] standard and a transparent object persistence standard. JDO, from an API point of view, is agnostic to the technology of the underlying datastore, whereas JPA is beingtargeted orientedto totallyRDBMS arounddatastores RDBMS(although there are several JPA providers that support access to non-relational datastores through the JPA API, such as EclipseLink, DataNucleus and ObjectDB).
 
Leading JDO commercial implementations and open source projects will and some also offer a JPA API implementation as an alternative access to their underlying persistence engines, formerly exposed solely via JDO in the original products. There are many open source implementations of JDO.