Diferencia entre JPA e Hibernate

Diferencia entre JPA e Hibernate
Diferencia entre JPA e Hibernate

Video: Diferencia entre JPA e Hibernate

Video: Diferencia entre JPA e Hibernate
Video: Filosofía de la Complejidad - Pensamiento Complejo - Edgar Morin 2024, Noviembre
Anonim

JPA frente a Hibernate

Casi todas las aplicaciones empresariales deben acceder a las bases de datos relacionales con regularidad. Pero un problema que enfrentaban las tecnologías anteriores (como JDBC) era el desajuste de impedancia (diferencia entre tecnologías orientadas a objetos y relacionales). Se introdujo una solución para este problema mediante la introducción de una capa abstracta llamada capa de persistencia, que encapsula el acceso a la base de datos desde la lógica empresarial. JPA (API de persistencia de Java) es un marco dedicado a la gestión de datos relacionales (usando la capa de persistencia) en aplicaciones Java. Hay muchas implementaciones de proveedores de JPA que se utilizan dentro de la comunidad de desarrolladores de Java. Hibernate es la implementación más popular de JPA (DataNucleus, EclipseLink y OpenJPA son algunas otras). La versión más reciente de JPA (JPA 2.0) es totalmente compatible con Hibernate 3.5, que se lanzó en marzo de 2010.

¿Qué es JPA?

JPA es un marco para administrar datos relacionales para Java. Se puede utilizar con aplicaciones que utilicen JSE (Java Platform, Standard Edition) o JEE (Java Platform, Enterprise Edition). Su versión actual es JPA 2.0, que se lanzó el 10 de diciembre de 2009. JPA reemplazó a los beans de entidad EJB 2.0 y EJB 1.1 (que fueron muy criticados por ser pesados por la comunidad de desarrolladores de Java). Aunque los beans de entidad (en EJB) proporcionaron objetos de persistencia, muchos desarrolladores estaban acostumbrados a utilizar objetos relativamente ligeros ofrecidos por DAO (objetos de acceso a datos) y otros marcos similares en su lugar. Como resultado, se introdujo JPA y capturó muchas de las características interesantes de los marcos mencionados anteriormente.

La persistencia como se describe en JPA cubre la API (definida en javax.persistencia), JPQL (Java Platform, Enterprise Edition) y los metadatos necesarios para los objetos relacionales. El estado de una entidad de persistencia normalmente se conserva en una tabla. Las instancias de una entidad corresponden a filas de la tabla de la base de datos relacional. Los metadatos se utilizan para expresar las relaciones entre entidades. Se utilizan anotaciones o archivos de descriptores XML separados (implementados con la aplicación) para especificar metadatos en clases de entidad. JPQL, que es similar a las consultas SQL, se usa para consultar entidades almacenadas.

¿Qué es Hibernate?

Hibernate es un marco que se puede utilizar para el mapeo relacional de objetos destinado al lenguaje de programación Java. Más específicamente, es una biblioteca ORM (mapeo relacional de objetos) que se puede usar para mapear el modelo relacional de objetos en el modelo relacional convencional. En términos simples, crea un mapeo entre clases y tablas de Java en bases de datos relacionales, también entre tipos de datos de Java a SQL. Hibernate también se puede utilizar para consultar y recuperar datos mediante la generación de llamadas SQL. Por lo tanto, el programador se libera del manejo manual de conjuntos de resultados y objetos de conversión. Hibernate se lanza como un marco de código abierto y gratuito distribuido bajo licencia GNU. Se proporciona una implementación para la API de JPA en Hibernate 3.2 y versiones posteriores. Gavin King es el fundador de Hibernate.

¿Cuál es la diferencia entre JPA e Hibernate?

JPA es un marco para gestionar datos relacionales en aplicaciones Java, mientras que Hibernate es una implementación específica de JPA (por lo que, idealmente, JPA e Hibernate no se pueden comparar directamente). En otras palabras, Hibernate es uno de los marcos más populares que implementa JPA. Hibernate implementa JPA a través de las bibliotecas Hibernate Annotation y EntityManager que se implementan sobre las bibliotecas Hibernate Core. Tanto EntityManager como Annotations siguen el ciclo de vida de Hibernate. La versión más reciente de JPA (JPA 2.0) es totalmente compatible con Hibernate 3.5. JPA tiene la ventaja de tener una interfaz estandarizada, por lo que la comunidad de desarrolladores estará más familiarizada con ella que con Hibernate. Por otro lado, las API nativas de Hibernate pueden considerarse más poderosas porque sus características son un superconjunto de las de JPA.

Recomendado: