Razlika između JPA i Hibernate

Razlika između JPA i Hibernate
Razlika između JPA i Hibernate

Video: Razlika između JPA i Hibernate

Video: Razlika između JPA i Hibernate
Video: Razlika između nejednakosti i nejednadžbe 2024, Studeni
Anonim

JPA vs Hibernate

Gotovo sve poslovne aplikacije moraju redovito pristupati relacijskim bazama podataka. Ali problem s kojim su se suočavale ranije tehnologije (kao što je JDBC) bila je neusklađenost impedancije (razlika između objektno orijentiranih i relacijskih tehnologija). Rješenje za ovaj problem uvedeno je uvođenjem apstraktnog sloja nazvanog Perzistentni sloj, koji enkapsulira pristup bazi podataka iz poslovne logike. JPA (Java Persistence API) okvir je namijenjen za upravljanje relacijskim podacima (koristeći sloj postojanosti) u Java aplikacijama. Postoje mnoge implementacije JPA od proizvođača koje se koriste unutar zajednice Java programera. Hibernate je najpopularnija takva implementacija JPA (DataNucleus, EclipseLink i OpenJPA su neki drugi). Najnoviju verziju JPA (JPA 2.0) u potpunosti podržava Hibernate 3.5, koji je objavljen u ožujku 2010.

Što je JPA?

JPA je okvir za upravljanje relacijskim podacima za Javu. Može se koristiti s aplikacijama koje koriste JSE (Java platforma, Standard Edition) ili JEE (Java Platforma, Enterprise Edition). Njegova trenutna verzija je JPA 2.0, koja je objavljena 10. prosinca 2009. JPA je zamijenio EJB 2.0 i EJB 1.1 entitetske bean-ove (koje je Java developer zajednica žestoko kritizirala zbog njihove težine). Iako su entitetski beanovi (u EJB-u) pružali objekte postojanosti, mnogi su programeri umjesto toga bili navikli koristiti relativno lagane objekte koje nudi DAO (Objekti pristupa podacima) i drugi slični okviri. Kao rezultat toga, uveden je JPA i obuhvatio je mnoge zgodne značajke gore spomenutih okvira.

Postojanost kako je opisano u JPA pokriva API (definiran u javax.postojanost), JPQL (Java Platforma, Enterprise Edition) i metapodaci potrebni za relacijske objekte. Stanje postojanog entiteta obično se čuva u tablici. Instance entiteta odgovaraju redovima tablice relacijske baze podataka. Metapodaci se koriste za izražavanje odnosa između entiteta. Bilješke ili odvojene datoteke XML deskriptora (postavljene s aplikacijom) koriste se za određivanje metapodataka u klasama entiteta. JPQL, koji je sličan SQL upitima, koristi se za postavljanje upita pohranjenim entitetima.

Što je Hibernate?

Hibernate je framework koji se može koristiti za objektno-relacijsko mapiranje namijenjeno programskom jeziku Java. Točnije, to je biblioteka ORM (object-relational mapping) koja se može koristiti za preslikavanje objektno-relacijskog modela u konvencionalni relacijski model. Jednostavno rečeno, stvara preslikavanje između Java klasa i tablica u relacijskim bazama podataka, također između Java i SQL tipova podataka. Hibernate se također može koristiti za upite i dohvaćanje podataka generiranjem SQL poziva. Stoga je programer oslobođen ručnog rukovanja skupovima rezultata i pretvaranjem objekata. Hibernate je objavljen kao besplatni okvir otvorenog koda koji se distribuira pod GNU licencom. Implementacija za JPA API dostupna je u Hibernate 3.2 i novijim verzijama. Gavin King je osnivač Hibernatea.

Koja je razlika između JPA i Hibernate?

JPA je okvir za upravljanje relacijskim podacima u Java aplikacijama, dok je Hibernate specifična implementacija JPA (tako da se idealno JPA i Hibernate ne mogu izravno uspoređivati). Drugim riječima, Hibernate je jedan od najpopularnijih frameworka koji implementira JPA. Hibernate implementira JPA kroz biblioteke Hibernate Annotation i EntityManager koje su implementirane povrh biblioteka Hibernate Core. I EntityManager i Annotations slijede životni ciklus Hibernatea. Najnoviju verziju JPA (JPA 2.0) u potpunosti podržava Hibernate 3.5. JPA ima prednost što ima sučelje koje je standardizirano, tako da će zajednica programera biti bolje upoznata s njim nego s Hibernateom. S druge strane, izvorni Hibernate API-ji mogu se smatrati moćnijim jer su njegove značajke nadskup JPA-a.

Preporučeni: