Hibernate es una herramienta de mapeo objeto-relacional (ORM) para la plataforma Java (y disponible también para .Net con 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.
Hibernate es software libre, distribuido bajo los términos de la licencia GNU LGPL.
Como todas las herramientas de su tipo, Hibernate busca solucionar el problema de la diferencia entre los dos modelos de datos coexistentes en una aplicación: el usado en la memoria de la computadora (orientación a objetos) y el usado en las bases de datos (modelo relacional). Para lograr esto permite al desarrollador detallar cómo es su modelo de datos, qué relaciones existen y qué forma tienen. Con esta información Hibernate le permite a la aplicación manipular los datos en la base de datos operando sobre objetos, con todas las características de la POO. Hibernate convertirá los datos entre los tipos utilizados por Java y los definidos por SQL. Hibernate genera las sentencias SQL y libera al desarrollador del manejo manual de los datos que resultan de la ejecución de dichas sentencias, manteniendo la portabilidad entre todos los motores de bases de datos con un ligero incremento en el tiempo de ejecución.
Hibernate está diseñado para ser flexible en cuanto al esquema de tablas utilizado, para poder adaptarse a su uso sobre una base de datos ya existente. También tiene la funcionalidad de crear la base de datos a partir de la información disponible.
Hibernate ofrece también un lenguaje de consulta de datos llamado HQL (Hibernate Query Language), al mismo tiempo que una API para construir las consultas programáticamente (conocida como "criteria").
Hibernate para Java puede ser utilizado en aplicaciones Java independientes o en aplicaciones Java EE, mediante el componente Hibernate Annotations que implementa el estándar JPA, que es parte de esta plataforma.
Hibernate comenzó en el año 2001 por Gavin King con colegas de Cirrus Technologies como una alternativa al estilo de programación de EJB2, que usa beans como entidades. El objetivo original era ofrecer mejores capacidades de persistencia que las ofrecidas por EJB2, simplificar las complejidades y complementar algunas características necesarias.
A principios de 2003, el equipo de desarrollo de Hibernate lanzó Hibernate 2 y sus sub-versiones sucesivas, que ofrecieron muchas mejoras significativas sobre el primer lanzamiento.
JBoss, Inc. (ahora parte de Red Hat) contrató a los líderes de desarrollo de Hibernate para continuar su desarrollo.
En 2005, se lanzó la versión 3.0 de Hibernate. Las características clave incluyeron:
A partir de 2010, Hibernate 3 (versión 3.5.0 y posteriores) fue una implementación certificada de la especificación Java Persistence API 2.0 a través de un envoltorio para el módulo Core que cumple con la norma JSR 317.
En diciembre de 2011, se lanzó Hibernate Core 4.0.0 Final. Esta versión incluye nuevas características,
como:En diciembre de 2013, se lanzó la final de Hibernate ORM 4.3.0.
El objetivo de esta versión es tener compatibilidad total con Java Persistence API 2.1.En agosto de 2015, se lanzó la final de Hibernate ORM 5.0. Las principales mejoras introducidas son:
El lanzamiento final de la serie 5.1.x se produjo en noviembre de 2018 con Hibernate 5.1.17.
En mayo de 2018, se lanzó la versión final de Hibernate ORM 5.3.
Las principales mejoras implementadas son:En diciembre de 2018, se lanzó la final de Hibernate ORM 5.4.0.
Entre todas las mejoras, las más reseñadas en el artículo del blog de Hibernate son:En diciembre de 2018 empezaron los lanzamientos alpha de Hibernate 6.0.
Las características principales que se quieren implementar son: Los desarrolladores de Hibernate tratan de ajustarse a las especificaciones del modelo de persistencia JPA, que van de la mano de Java EE (mantenida hasta la versión 8 por Oracle) y Jakarta EE (mantenida en la actualidad por Eclipse Foundation). Por eso, a lo largo de su desarrollo en el tiempo, y a medida que JPA ha ido mejorándose, uno de los principales objetivos de Hibernate ha sido adaptarse a la API de la que penden por defecto todos los sistemas que usan Java que usan mapeo entidad-relación.
El histórico de versiones de JPA soportadas es:
Escribe un comentario o lo que quieras sobre Hibernate (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)