logo

JPA vs. Hibernate

Què és JPA?

Una JPA (Java Persistence API) és una especificació de Java que s'utilitza per accedir, gestionar i mantenir dades entre l'objecte Java i la base de dades relacional. Es considera com un enfocament estàndard per al mapatge relacional d'objectes.

matriu java per llistar

JPA es pot veure com un pont entre els models de domini orientat a objectes i els sistemes de bases de dades relacionals. En ser una especificació, JPA no realitza cap operació per si mateix. Per tant, requereix implementació. Per tant, eines ORM com Hibernate, TopLink i iBatis implementen especificacions JPA per a la persistència de les dades.


Què és Hibernate?

Un Hibernate és un marc de Java que s'utilitza per emmagatzemar els objectes Java al sistema de bases de dades relacionals. És una eina de codi obert, lleugera, ORM (Object Relational Mapping).

Hibernate és una implementació de JPA. Per tant, segueix els estàndards comuns proporcionats per la JPA.


Necessitat de JPA

Com hem vist fins ara, JPA és una especificació. Proporciona un prototip i una funcionalitat comuns a les eines ORM. En implementar la mateixa especificació, totes les eines ORM (com Hibernate, TopLink, iBatis) segueixen els estàndards comuns. En el futur, si volem canviar la nostra aplicació d'una eina ORM a una altra, ho podem fer fàcilment.


JPA vs. Hibernate

JPA Hibernar
Java Persistence API (JPA) defineix la gestió de dades relacionals a les aplicacions Java. Hibernate és una eina de mapatge relacional d'objectes (ORM) que s'utilitza per desar l'estat de l'objecte Java a la base de dades.
És només una especificació. Diverses eines ORM ho implementen per a la persistència de les dades. És una de les implementacions JPA més utilitzades.
Es defineix a javax.persistència paquet. Es defineix a org.hibernar paquet.
El EntityManagerFactory La interfície s'utilitza per interactuar amb la fàbrica del gestor d'entitats per a la unitat de persistència. Així, ofereix un gestor d'entitat. S'utilitza SessionFactory interfície per crear instàncies de sessió.
S'utilitza EntityManager interfície per crear, llegir i suprimir operacions per a instàncies de classes d'entitats mapejades. Aquesta interfície interactua amb el context de persistència. S'utilitza Sessió interfície per crear, llegir i suprimir operacions per a instàncies de classes d'entitats mapejades. Es comporta com una interfície d'execució entre una aplicació Java i Hibernate.
S'utilitza Llenguatge de consulta de persistència Java (JPQL) com a llenguatge de consulta orientat a objectes per realitzar operacions de base de dades. S'utilitza Hibernate Query Language (HQL) com a llenguatge de consulta orientat a objectes per realitzar operacions de base de dades.