JDO, a project of the Apache DB project. Our goal is a thriving community of users and developers of object persistence technology. Java Data Objects (JDO) is a standard way to access persistent data in databases, using plain old Java objects (POJO) to represent persistent data. The approach separates data manipulation (done by accessing Java data members in the Java domain objects) from database manipulation (done by calling the JDO interface methods). This separation of concerns leads to a high degree of independence of the Java view of data from the database view of the data. Interfaces are defined for the user's view of persistence:
PersistenceManager: the component responsible for the life cycle of persistent instances, Query factory, and Transaction access
Query: the component responsible for querying the datastore and returning persistent instances or values
Transaction: the component responsible for initiating and completing transactions
JDO is being developed as a Java Specification Request in the Java Community Process. The original JDO 1.0 is JSR-12 and the current JDO 2.0 is JSR-243. The Apache JDO project is focused on building the JDO API and the TCK for compatibility testing of JDO implementations. Commercial and open source implementations of JDO are available for relational databases, object databases, and file systems.

This spec, created under the Java Community Process (JCP), enhances EJB architecture with support for Web services, making it easier to implement and deploy Web services applications based on Java technology