logo

JPA protiv Hibernate

Što je JPA?

JPA (Java Persistence API) je specifikacija Jave koja se koristi za pristup, upravljanje i zadržavanje podataka između Java objekta i relacijske baze podataka. Smatra se standardnim pristupom za objektno relacijsko mapiranje.

css podebljano

JPA se može promatrati kao most između objektno orijentiranih modela domene i sustava relacijskih baza podataka. Budući da je specifikacija, JPA ne izvodi nikakvu operaciju sam. Dakle, zahtijeva implementaciju. Dakle, ORM alati kao što su Hibernate, TopLink i iBatis implementiraju JPA specifikacije za postojanost podataka.


Što je Hibernate?

Hibernate je Java okvir koji se koristi za pohranjivanje Java objekata u sustav relacijske baze podataka. To je lagani ORM (Object Relational Mapping) alat otvorenog koda.

Hibernate je implementacija JPA. Dakle, slijedi zajedničke standarde koje daje JPA.


Potreba za JPA

Kao što smo do sada vidjeli, JPA je specifikacija. Omogućuje zajednički prototip i funkcionalnost za ORM alate. Implementacijom iste specifikacije, svi ORM alati (kao što su Hibernate, TopLink, iBatis) slijede zajedničke standarde. U budućnosti, ako želimo prebaciti svoju aplikaciju s jednog ORM alata na drugi, to ćemo lako učiniti.


JPA protiv Hibernate

JPA Hibernacija
Java Persistence API (JPA) definira upravljanje relacijskim podacima u Java aplikacijama. Hibernate je alat za objektno-relacijsko mapiranje (ORM) koji se koristi za spremanje stanja Java objekta u bazu podataka.
To je samo specifikacija. Razni ORM alati implementiraju ga za postojanost podataka. To je jedna od najčešće korištenih JPA implementacija.
Definirano je u javax.postojanost paket. Definirano je u org.hibernacija paket.
The EntityManagerFactory sučelje se koristi za interakciju s tvornicom upravitelja entiteta za jedinicu postojanosti. Dakle, pruža upravitelja entiteta. Koristi se SessionFactory sučelje za stvaranje instanci Sesije.
Koristi se Upravitelj entiteta sučelje za stvaranje, čitanje i brisanje operacija za instance mapiranih klasa entiteta. Ovo sučelje je u interakciji s kontekstom postojanosti. Koristi se Sjednica sučelje za stvaranje, čitanje i brisanje operacija za instance mapiranih klasa entiteta. Ponaša se kao runtime sučelje između Java aplikacije i Hibernate.
Koristi se Java Persistence Query Language (JPQL) kao objektno orijentirani upitni jezik za izvođenje operacija baze podataka. Koristi se Jezik upita za hibernaciju (HQL) kao objektno orijentirani upitni jezik za izvođenje operacija baze podataka.