Ticker

6/recent/ticker-posts

¿Qué es JPA y Hibernate?


La persistencia de datos es de gran importancia teniendo en cuenta que es un medio mediante el cual una aplicación puede recuperar información desde un sistema de almacenamiento no volátil y hacer que esta persista, es decir, la persistencia de datos es vital en las aplicaciones empresariales debido al acceso necesario a las bases de datos relacionales, es aquí donde intervienen JPA y Hibernate con relación al desarrollo para la plataforma Java.

Lo que veremos:

  1. ¿Qué es JPA?
  2. ¿Qué es Hibernate?
  3. ¿Cuál es la relación entre JPA e Hibernate?
  4. Otras implementaciones de JPA.
  5. Conclusiones.


1. ¿Qué es JPA?

Java Persistence API, más conocida por sus siglas JPA, es la API de persistencia desarrollada para la plataforma Java EE. La cual es una propuesta estándar que ofrece el lenguaje de programación Java para implementar un Framework Object Relational Mapping (ORM), que maneja datos relacionales en aplicaciones usando la plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).


2. ¿Qué es Hibernate?

Por su parte, Hibernate es una herramienta de Mapeo objeto-relacional (ORM), para la plataforma Java; también disponible para tecnología Microsoft .Net, bajo el nombre de NHibernate, que facilita el mapeo de atributos entre una base de datos relacional tradicional y el modelo de objetos de una aplicación; mediante archivos declarativos (XML) o anotaciones en los beans de las entidades que permiten establecer estas relaciones . Este es software libre (Hibernate y NHibernate), es distribuido bajo los términos de la licencia GNU LGPL.


3. ¿Cuál es la relación entre JPA e Hibernate?

En pricipio al tratarse de JPA y poder trabajar con ella según la persistencia a datos en base a un Framework que implemente la especificación, uno de los más conocidos es Hibernate y es común encontrar en los desarrollos para la plataforma Java la relación existe entre JPA e Hibernate es que este último implementa como parte de su código la especificación de JPA, quiere decir, que podemos hacer uso de Hibernate para construir una capa de persistencia apoyándonos en las definiciones y reglas según la especificación de JPA; precisar, que no necesariamente es obligatorio trabajar con Hibernate.

Eso sí, esto no quiere decir que Hibernate simplemente implemente el standard de JPA. Hibernate es mucho más grande que la especificación de JPA y añade más funcionalidad.


4. Otras implementaciones de JPA.

Es cierto que la implementación de JPA la más usada es Hibernate, sin embargo, existen algunas otras alternativas como son:

  1. EclipseLink : Muy utilizada y cuenta con el respaldo de la fundación Eclipse y brinda soporte a JPA.
  2. TopLink: Ofrecido por Oracle con relación a sus clásicos productos y esta basada en EclipseLink
  3. DataNucleus: Framework de persistencia que soporta JPA e incluye otras opciones y tipos de persistencia.
  4. ObjectDB: Una de la implementaciones JPA que promete un rendimiento alto comparado con sus competidores.
  5. Spring Data JPA: Es una implementación JPA que necesita la implementación propiamente de Hibernate o EclipseLink.
  6. Apache OpenJPA: Implementacion basada en persistencia POJO para integrarse a cualquier contenedor compatible con Java EE y muchos otros contenedores ligeros como Tomcat y Spring.

5. Conclusiones:

  • JPA es sólo parte de la especificación de  EJB 3 (Enterprise JavaBeans) y la documentación en el cual se especifica los principios básicos de gestión de la capa de persistencia con relación al mundo de Java EE. 
  • Hibernate se trata de un Framework que gestiona la capa de persistencia a través de ficheros XML o anotaciones.

Referencias:

IBM - Java Persistence API (JPA)

ORACLE - Java Persistence API

ORACLE - Introduction to the Java Persistence API

Basic Java Persistence API Best Practices, Developer: Java, By Dustin Marx, Published May 2008

Publicar un comentario

0 Comentarios