
The first release of JPA, version 1.0, was published in 2006 through the Java Community Process (JCP) as Java Specification Request (JSR) 220. As an example, while the original JPA specification is applicable to relational databases, some vendor implementations have extended JPA for use with NoSQL databases. Having an ORM standard for Java brings consistency to vendor implementations, while also allowing for flexibility and add-ons. The specification also defines a common construct for interacting with databases. Many of these tools existed before the JPA specification, but without a standard their features were vendor dependent.įirst released as part of EJB 3.0 in 2006, the Java Persistence API (JPA) offers a standard way to annotate objects so that they can be mapped and stored in a relational database. ORM tools like Hibernate, EclipseLink, and iBatis translate relational database models, including entities and their relationships, into object-oriented models.

The mismatch between object-oriented design and relational database modeling has led to a class of tools developed specifically for object-relational mapping (ORM).

Entities are placed in tables where they occupy columns and rows.

Java objects in a relational database context are defined as entities.
