Java Persistence API
A Java Persistence API, vagy röviden JPA, egy keretrendszer a Java programozási nyelvhez, fő feladata Java Platformot (Standard Edition, Enterprise Edition) használó alkalmazásokban relációs adatok kezelése. A Java Persistence API a JSR 220 Expert Group, a JPA 2.0 a JSR 317 Expert Group munkája.
A perzisztencia ebben a kontextusban a következő három területet fedi le:
- maga az API, a javax.persistence csomagban definiálva
- a Java Persistence Query Language (JPQL)
- objektum-relációs metaadatok
Története
A JPA 1.0 specifikáció 2006. május 11-én jelent meg végleges formában a JSR 220 részeként. A JPA 2.0 specifikáció 2009 december 10-én jelent meg. A JPA a sokat kritizált EJB 2.0 és EJB 2.1 entitás bean-ek leváltására született.
Entitások
A perzisztencia entitás egy olyan Java osztály, mely tipikusan perzisztálva van egy táblához egy relációs adatbázisban, példányai adattáblák egyes sorainak felelnek meg. Az entitások általában kapcsolatban állnak más entitásokkal, és ezeket a kapcsolatokat az objektum-relációs metaadatok fejezik ki. Objektum-relációs metaadatokat meghatározhatunk közvetlenül az entitás osztályt tartalmazó fájlban annotációk segítségével, vagy egy – az alkalmazáshoz tartozó, de az entitás osztálytól különálló – XML leíró fájlban.
Java Persistence Query Language
A Java Persistence Query Language (JPQL) segítségével a relációs adatbázisban tárolt entitások kérdezhetők le. A lekérdezések szintaxisa hasonló az SQL lekérdezésekhez, de ezekben a lekérdezésekben entitás objektumokat kezelünk, nem közvetlenül adattáblákat.
Kapcsolódó technológiák
Enterprise JavaBeans
Az EJB 3.0 specifikáció (mely a Java EE 5 platform része) magában foglal egy definíciót a Java Persistence API-ról. Ugyanakkor a végfelhasználóknak nincsen szükségük EJB konténerre vagy Java EE alkalmazás szerverre annak érdekében, hogy olyan alkalmazást futtassanak, mely a JPA-t használja. A Java Persistence API következő verziói különálló JSR-ben lesznek definiálva, nem pedig az EJB JSR-ben.
A Java Persistence API az EJB 2.0 CMP (Container Managed Persistence) perzisztencia megoldását váltja fel.
Külső hivatkozások
- JCP Persistence page
- GlassFish's Persistence page
- Documentation for the final version of the EJB3 spec (called JSR220)