Különbség a JPA és a hibernált állapot között

Különbség a JPA és a hibernált állapot között
Különbség a JPA és a hibernált állapot között

Videó: Különbség a JPA és a hibernált állapot között

Videó: Különbség a JPA és a hibernált állapot között
Videó: Q&A: Complication vs. Complexity in Story 2024, November
Anonim

JPA vs Hibernate

Szinte minden vállalati alkalmazásnak rendszeresen hozzá kell férnie a relációs adatbázisokhoz. A korábbi technológiákkal (például a JDBC-vel) szembesült probléma azonban az impedancia eltérése volt (az objektumorientált és a relációs technológiák közötti különbség). A probléma megoldását a Persistence layer nevű absztrakt réteg bevezetésével vezették be, amely az üzleti logikából az adatbázis-hozzáférést tartalmazza. A JPA (Java Persistence API) egy keretrendszer a relációs adatok kezelésére (a perzisztencia réteg használatával) Java alkalmazásokban. A Java fejlesztői közösségen belül a JPA számos szállítói megvalósítását használják. A Hibernate a JPA legnépszerűbb ilyen megvalósítása (a DataNucleus, az EclipseLink és az OpenJPA néhány más). A legújabb JPA-verziót (JPA 2.0) teljes mértékben támogatja a Hibernate 3.5, amely 2010 márciusában jelent meg.

Mi az a JPA?

A JPA egy keretrendszer a Java relációs adatok kezelésére. Használható JSE (Java Platform, Standard Edition) vagy JEE (Java Platform, Enterprise Edition) alkalmazásokkal. Jelenlegi verziója a JPA 2.0, amely 2009. december 10-én jelent meg. A JPA felváltotta az EJB 2.0 és EJB 1.1 entity beaneket (amelyeket a Java fejlesztői közösség erősen kritizált, mert nehézsúlyú). Bár az entity beans (EJB-ben) perzisztencia objektumokat biztosított, sok fejlesztő hozzászokott a DAO (Data Access Objects) és más hasonló keretrendszerek által kínált viszonylag könnyű objektumok használatához. Ennek eredményeként bevezették a JPA-t, amely megragadta a fent említett keretrendszerek sok finom jellemzőjét.

A JPA-ban leírt perzisztencia lefedi az API-t (amely a javaxban van meghatározva.perzisztencia), JPQL (Java Platform, Enterprise Edition) és a relációs objektumokhoz szükséges metaadatok. A perzisztencia entitás állapota általában egy táblában marad meg. Egy entitás példányai megfelelnek a relációs adatbázis táblázatának sorainak. A metaadatok az entitások közötti kapcsolatok kifejezésére szolgálnak. Az entitásosztályokban a metaadatok megadására megjegyzések vagy külön XML-leíró fájlok (az alkalmazással együtt telepítve) használhatók. A JPQL, amely hasonló az SQL lekérdezésekhez, a tárolt entitások lekérdezésére szolgál.

Mi az a hibernált állapot?

A Hibernate egy olyan keretrendszer, amely Java programozási nyelvhez készült objektumrelációs leképezésre használható. Pontosabban, ez egy ORM (objektum-relációs leképezés) könyvtár, amely az objektum-relációs modell hagyományos relációs modellre való leképezésére használható. Egyszerűen fogalmazva, leképezést hoz létre a Java osztályok és a relációs adatbázisok táblái között, valamint a Java-SQL adattípusok között is. A Hibernate SQL-hívások generálásával adatlekérdezésre és visszakeresésre is használható. Ezért a programozó mentesül az eredményhalmazok kézi kezelésétől és az objektumok konvertálásától. A Hibernate ingyenes és nyílt forráskódú keretrendszerként jelenik meg GNU licenc alatt. A JPA API megvalósítása elérhető a Hibernate 3.2-es és újabb verzióiban. Gavin King a Hibernate alapítója.

Mi a különbség a JPA és a Hibernate között?

A A JPA egy keretrendszer a Java alkalmazások relációs adatainak kezelésére, míg a Hibernate a JPA speciális megvalósítása (így ideális esetben a JPA és a Hibernate nem hasonlítható össze közvetlenül). Más szóval, a Hibernate az egyik legnépszerűbb JPA-t megvalósító keretrendszer. A Hibernate a JPA-t a Hibernate Annotation és az EntityManager könyvtárakon keresztül valósítja meg, amelyek a Hibernate Core könyvtárakon felül vannak implementálva. Az EntityManager és az Annotations is a Hibernate életciklusát követi. A legújabb JPA-verziót (JPA 2.0) a Hibernate 3.5 teljes mértékben támogatja. A JPA előnye, hogy szabványosított felülettel rendelkezik, így a fejlesztői közösség jobban ismeri, mint a hibernálást. Másrészt a natív hibernált API-k erősebbnek tekinthetők, mivel funkcióik a JPA szolgáltatásainak szuperkészletei.

Ajánlott: