Jakarta Persistence, also known as JPA (abbreviated from formerly name Java Persistence API) is a Jakarta EE application programming interface specification that describes the management of relational data in enterprise Java applications.
[1] The final release date of the JPA 1.0 specification was 11 May 2006 as part of Java Community Process JSR 220.
The JPA 3.1 specification, the latest version, was released in the spring of 2022 as part of Jakarta EE 10.
An example entity class with ORM metadata declared using annotations (import statements and setters/getters are omitted for simplicity).
Prior to the introduction of EJB 3.0 specification, many enterprise Java developers used lightweight persistent objects provided by either persistence frameworks (such as Hibernate) or data access objects (DAO) instead of by using entity beans.
This is because entity beans, in previous EJB specifications, called for much complicated code and imposed a heavy resource footprint, and they could be used only on Java EE application servers because of interconnections and dependencies in the source code between beans and DAO objects or persistence frameworks.
[4] Future versions of the Java Persistence API will be defined in a separate JSR and specification rather than in the EJB JSR/specification.
Hibernate, founded by Gavin King, provides an open source object-relational mapping framework for Java.
[9][10] King represented JBoss on JSR 220,[11] the JCP expert group charged with developing JPA.
[citation needed] Sun Microsystems stated[12] that ideas came from several frameworks, including Hibernate and Java Data Objects.
[13]: 47 [14] Development of a new version of JPA 2.0 was started in July 2007 in the Java Community Process as JSR 317.