Razlika između JPA i hibernacije

Razlika između JPA i hibernacije
Razlika između JPA i hibernacije

Video: Razlika između JPA i hibernacije

Video: Razlika između JPA i hibernacije
Video: Koja je razlika između cijene i vrijednosti 2024, Juli
Anonim

JPA vs hibernacija

Skoro sve poslovne aplikacije moraju redovno pristupati relacionim bazama podataka. Ali problem sa kojim su se suočavale ranije tehnologije (kao što je JDBC) bio je neusklađenost impedancije (razlika između objektno orijentisanih i relacionih tehnologija). Rješenje za ovaj problem uvedeno je uvođenjem apstraktnog sloja nazvanog Persistence layer, koji inkapsulira pristup bazi podataka iz poslovne logike. JPA (Java Persistence API) je okvir namijenjen za upravljanje relacijskim podacima (koristeći sloj postojanosti) u Java aplikacijama. Postoji mnogo implementacija JPA od proizvođača koje se koriste u zajednici Java programera. Hibernate je najpopularnija takva implementacija JPA (DataNucleus, EclipseLink i OpenJPA su neki drugi). Najnovija JPA verzija (JPA 2.0) je u potpunosti podržana od Hibernate 3.5, koja je objavljena u martu 2010.

Šta je JPA?

JPA je okvir za upravljanje relacionim podacima za Javu. Može se koristiti sa aplikacijama koje koriste JSE (Java Platforma, Standardno izdanje) ili JEE (Java Platforma, Enterprise Edition). Njegova trenutna verzija je JPA 2.0, koja je objavljena 10. decembra 2009. JPA je zamijenio EJB 2.0 i EJB 1.1 entitetski bean (koje je zajednica Java programera žestoko kritizirala zbog velike težine). Iako su entitetski bean-ovi (u EJB-u) obezbjeđivali objekte postojanosti, mnogi programeri su navikli da koriste relativno lagane objekte koje nudi DAO (Objekti pristupa podacima) i drugi slični okviri umjesto toga. Kao rezultat toga, uveden je JPA, koji je obuhvatio mnoge od zgodnih karakteristika okvira navedenih iznad.

Upornost kao što je opisano u JPA pokriva API (definisan u javax.postojanost), JPQL (Java Platform, Enterprise Edition) i metapodaci potrebni za relacijske objekte. Stanje entiteta postojanosti se obično zadržava u tabeli. Instance entiteta odgovaraju redovima tabele relacione baze podataka. Metapodaci se koriste za izražavanje odnosa između entiteta. Za navođenje metapodataka u klasama entiteta koriste se napomene ili zasebne datoteke XML deskriptora (primijenjene uz aplikaciju). JPQL, koji je sličan SQL upitima, koristi se za upite pohranjenih entiteta.

Šta je hibernacija?

Hibernate je okvir koji se može koristiti za objektno-relacijsko mapiranje namijenjeno za programski jezik Java. Konkretnije, to je ORM (object-relational mapping) biblioteka koja se može koristiti za mapiranje objektno-relacionog modela u konvencionalni relacioni model. Jednostavno rečeno, kreira mapiranje između Java klasa i tabela u relacionim bazama podataka, takođe između Java i SQL tipova podataka. Hibernacija 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 pretvaranja objekata. Hibernate je objavljen kao besplatan okvir otvorenog koda koji se distribuira pod GNU licencom. Implementacija za JPA API je obezbeđena u Hibernate 3.2 i novijim verzijama. Gavin King je osnivač Hibernate.

Koja je razlika između JPA i hibernacije?

JPA je okvir za upravljanje relacionim podacima u Java aplikacijama, dok je Hibernate specifična implementacija JPA (dakle, u idealnom slučaju, JPA i Hibernate se ne mogu direktno porediti). Drugim riječima, Hibernate je jedan od najpopularnijih okvira koji implementira JPA. Hibernate implementira JPA kroz Hibernate Annotation i EntityManager biblioteke koje su implementirane na Hibernate Core biblioteke. I EntityManager i Anotacije prate životni ciklus Hibernate. Najnovija JPA verzija (JPA 2.0) je u potpunosti podržana od Hibernate 3.5. JPA ima prednost što ima interfejs koji je standardizovan, tako da će zajednica programera biti bolje upoznata sa njim od hibernacije. S druge strane, izvorni Hibernate API-ji se mogu smatrati moćnijim jer su njegove karakteristike nadskup JPA.

Preporučuje se: