Diferència entre JPA i Hibernate

Diferència entre JPA i Hibernate
Diferència entre JPA i Hibernate

Vídeo: Diferència entre JPA i Hibernate

Vídeo: Diferència entre JPA i Hibernate
Vídeo: Ив Морьё: Когда работа усложняется, используйте эти 6 правил 2024, Juliol
Anonim

JPA vs Hibernate

Gairebé totes les aplicacions empresarials són necessàries per accedir a les bases de dades relacionals amb regularitat. Però un problema que s'enfrontaven amb tecnologies anteriors (com ara JDBC) va ser el desajust d'impedància (diferència entre tecnologies orientades a objectes i relacionals). Una solució per a aquest problema es va introduir mitjançant la introducció d'una capa abstracta anomenada capa de persistència, que encapsula l'accés a la base de dades des de la lògica empresarial. JPA (Java Persistence API) és un framework dedicat a la gestió de dades relacionals (utilitzant la capa de persistència) en aplicacions Java. Hi ha moltes implementacions de proveïdors de JPA utilitzades a la comunitat de desenvolupadors Java. Hibernate és la implementació més popular de JPA (DataNucleus, EclipseLink i OpenJPA són alguns altres). La versió JPA més recent (JPA 2.0) és totalment compatible amb Hibernate 3.5, que es va publicar el març de 2010.

Què és JPA?

JPA és un marc per gestionar dades relacionals per a Java. Es pot utilitzar amb aplicacions que utilitzen JSE (Java Platform, Standard Edition) o JEE (Java Platform, Enterprise Edition). La seva versió actual és JPA 2.0, que es va publicar el 10 de desembre de 2009. JPA va substituir els beans d'entitats EJB 2.0 i EJB 1.1 (que van ser molt criticats per ser pesats per la comunitat de desenvolupadors Java). Tot i que els beans d'entitat (en EJB) proporcionaven objectes de persistència, molts desenvolupadors estaven acostumats a utilitzar objectes relativament lleugers oferts per DAO (Data Access Objects) i altres marcs similars. Com a resultat, es va introduir JPA i va capturar moltes de les característiques bones dels marcs esmentats anteriorment.

La persistència tal com es descriu a JPA cobreix l'API (definida a javax.persistència), JPQL (Java Platform, Enterprise Edition) i metadades necessàries per als objectes relacionals. L'estat d'una entitat de persistència normalment es manté en una taula. Les instàncies d'una entitat corresponen a files de la taula de la base de dades relacional. Les metadades s'utilitzen per expressar les relacions entre entitats. Les anotacions o els fitxers descriptors XML separats (desplegats amb l'aplicació) s'utilitzen per especificar metadades a les classes d'entitats. JPQL, que és similar a les consultes SQL, s'utilitzen per consultar entitats emmagatzemades.

Què és Hibernate?

Hibernate és un marc que es pot utilitzar per al mapatge relacional d'objectes destinat al llenguatge de programació Java. Més concretament, és una biblioteca ORM (mapa relacionat objecte) que es pot utilitzar per mapejar un model relacional objecte amb un model relacional convencional. En termes senzills, crea un mapeig entre classes Java i taules en bases de dades relacionals, també entre tipus de dades Java a SQL. Hibernate també es pot utilitzar per consultar i recuperar dades generant trucades SQL. Per tant, el programador queda alleujat de la manipulació manual dels conjunts de resultats i la conversió d'objectes. Hibernate es publica com a marc lliure i de codi obert distribuït sota llicència GNU. Hibernate 3.2 i versions posteriors ofereix una implementació per a l'API JPA. Gavin King és el fundador d'Hibernate.

Quina diferència hi ha entre JPA i Hibernate?

JPA és un marc per gestionar dades relacionals en aplicacions Java, mentre que Hibernate és una implementació específica de JPA (per tant, idealment, JPA i Hibernate no es poden comparar directament). En altres paraules, Hibernate és un dels frameworks més populars que implementa JPA. Hibernate implementa JPA mitjançant les biblioteques Hibernate Annotation i EntityManager que s'implementen a sobre de les biblioteques Hibernate Core. Tant EntityManager com Annotations segueixen el cicle de vida d'Hibernate. La versió JPA més recent (JPA 2.0) és totalment compatible amb Hibernate 3.5. JPA té l'avantatge de tenir una interfície estandarditzada, de manera que la comunitat de desenvolupadors estarà més familiaritzada amb ella que Hibernate. D' altra banda, les API natives d'Hibernate es poden considerar més potents perquè les seves funcions són un superconjunt de les de JPA.

Recomanat: