Prior knowledge or experience in database programming (SQL, JDBC, ORM, JPA, etc.) is not required, but some background in using the Java language is essential.
The Java Persistence API (JPA) is a standard API for accessing databases from within Java applications. The main advantage of JPA over JDBC (the older Java API for interacting with databases) is that in JPA data is represented by classes and objects rather than by tables and records as in JDBC. Using plain old Java objects (POJO) to represent persistent data can significantly simplify database programming.
A JPA implementation (sometimes referred to as a JPA provider) is needed in order to interact with a relational database such as Oracle, DB2, SQL Server or MySQL. The popular JPA implementations are Hibernate, TopLink, EclipseLink, Open JPA and DataNucleus. These implementations are Object Relational Mapping (ORM) tools. The mapping bridges between the data representation in the relational database (as tables and records) and the representation in the Java application (as classes and objects).
ObjectDB is the only database management system with built in support of the Java Persistence API (JPA). By interacting with ObjectDB using standard JPA you can keep your application portable. The unique benefit of using ObjectDB is that the overhead of an intermediate ORM layer is eliminated. That simplifies and accelerates the development process and makes your application run much faster.
The Java Data Objects (JDO) is another standard for accessing persistent data in databases, using plain old Java objects (POJO) to represent the object model. Unlike Java Persistence API (JPA), which is designated to be used with relational databases, JDO is designated to be used with both relational and object databases. JDO is supported by many object databases, including ObjectDB, and it is probably the most popular Java API for object databases today.
You can use ObjectDB with either the Java Persistence API (JPA) or the Java Data Objects (JDO) API. Both share similar architecture, design and abilities.
When to prefer JPA
JPA is more commonly used. Therefore, it might be the first choice for most new applications. You can use JPA as the primary API, and if necessary, switch to JDO as a secondary API for special additional features that are supported only by JDO. Selecting the more popular API leads to more portable application and extends the availability of experienced developers, forums, IDEs support, tools, books, tutorials and sample code.
When to prefer JDO
JDO might be preferred when portability to other object databases is more important than general portability to both object and relational databases. JPA is designated to be used mainly with relational databases. ObjectDB is the only object database that supports JPA. On the other hand, JDO is designated to be used with both relational and object databases and it is probably the most popular Java API for object databases today.