Mi az a JPA?
A JPA (Java Persistence API) a Java specifikációja, amely a Java objektum és a relációs adatbázis közötti adatok elérésére, kezelésére és fennmaradására szolgál. Az objektumrelációs leképezés standard megközelítésének tekinthető.
A JPA hídnak tekinthető az objektum-orientált tartománymodellek és a relációs adatbázis-rendszerek között. Specifikáció lévén a JPA önmagában nem hajt végre semmilyen műveletet. Ezért végrehajtást igényel. Tehát az olyan ORM-eszközök, mint a Hibernate, a TopLink és az iBatis, a JPA specifikációit valósítják meg az adatok fennmaradása érdekében.
Mi az a hibernált állapot?
A Hibernate egy Java-keretrendszer, amely a Java objektumok tárolására szolgál a relációs adatbázisrendszerben. Ez egy nyílt forráskódú, könnyű, ORM (Object Relational Mapping) eszköz.
A Hibernate a JPA megvalósítása. Tehát követi a KPK által biztosított közös szabványokat.
JPA szükséges
Amint azt eddig láttuk, a JPA egy specifikáció. Közös prototípust és funkcionalitást biztosít az ORM-eszközök számára. Ugyanazon specifikáció megvalósításával minden ORM-eszköz (mint például a Hibernate, TopLink, iBatis) a közös szabványokat követi. A jövőben, ha egyik ORM-eszközről a másikra szeretnénk átállítani az alkalmazásunkat, azt könnyen megtehetjük.
JPA kontra hibernált állapot
JPA | Hibernálás |
---|---|
A Java Persistence API (JPA) a relációs adatok kezelését határozza meg a Java alkalmazásokban. | A Hibernate egy ORM (Object-Relational Mapping) eszköz, amely a Java objektum állapotának adatbázisba mentésére szolgál. |
Ez csak egy specifikáció. Különféle ORM-eszközök valósítják meg az adatok fennmaradását. | Ez az egyik leggyakrabban használt JPA megvalósítás. |
-ben van meghatározva javax.perzisztencia csomag. | -ben van meghatározva org.hibernate csomag. |
A EntityManagerFactory interfész a perzisztencia egység entitáskezelő gyárával való interakcióra szolgál. Így entitáskezelőt biztosít. | Használja SessionFactory interfész munkamenet-példányok létrehozásához. |
Használja EntityManager interfész a leképezett entitásosztályok példányaihoz tartozó műveletek létrehozásához, olvasásához és törléséhez. Ez az interfész kölcsönhatásba lép a perzisztencia környezettel. | Használja Ülés interfész a leképezett entitásosztályok példányaihoz tartozó műveletek létrehozásához, olvasásához és törléséhez. Futóidejű interfészként működik a Java-alkalmazások és a hibernált állapot között. |
Használja Java Persistence Query Language (JPQL) objektum-orientált lekérdezési nyelvként adatbázis-műveletek végrehajtásához. | Használja Hibernált lekérdezési nyelv (HQL) objektumorientált lekérdezési nyelvként adatbázis-műveletek végrehajtásához. |