Hibernar | |
---|---|
Tipo de | ORM , capa de acceso a datos , capa de abstracción de base de datos , marco de persistencia [d] , marco y biblioteca de Java [d] |
Desarrollador | sombrero rojo |
Escrito en | Java |
Primera edición | 2001 |
plataforma de hardware | máquina virtual de Java |
ultima versión |
|
Licencia | GNU LGPL |
Sitio web | hibernate.org |
Archivos multimedia en Wikimedia Commons |
Hibernate es una biblioteca para el lenguaje de programación Java diseñada para resolver tareas de mapeo relacional de objetos ( ORM ), la implementación más popular de la especificación JPA . Distribuido libremente bajo los términos de la Licencia pública general reducida de GNU .
Le permite reducir la cantidad de programación de bajo nivel cuando trabaja con bases de datos relacionales; puede utilizarse tanto en el proceso de diseño de un sistema de clases y tablas desde cero, como para trabajar con una base de datos existente .
La biblioteca no solo resuelve el problema de asociar clases Java con tablas de bases de datos (y tipos de datos Java con tipos de datos SQL ), sino que también proporciona herramientas para generar y actualizar automáticamente un conjunto de tablas, generar consultas y procesar los datos recibidos, y puede reducir el tiempo de desarrollo, que generalmente se dedica a escribir manualmente código SQL y JDBC . Hibernate automatiza la generación de consultas SQL y libera al desarrollador del procesamiento manual del conjunto de datos resultante y la transformación de objetos, lo que facilita al máximo la transferencia (portación) de la aplicación a cualquier base de datos SQL.
Hibernate proporciona soporte de persistencia transparente para " POJOs " (es decir, para objetos estándar de Java); el único requisito estricto para una clase persistente es tener un constructor predeterminado (sin parámetros). Para un comportamiento correcto en algunas aplicaciones, también debe prestar atención a los métodos equals()y hashCode()[1] .
Hay un puerto de biblioteca para .NET - NHibernate . Los frameworks ORM alternativos para Java son MyBatis , iBATIS , TopLink , EclipseLink .
El mapeo ( mapeo , mapeo, proyección) de las clases de Java con las tablas de la base de datos se realiza mediante archivos XML de configuración o anotaciones de Java . Al usar un archivo XML, Hibernate puede generar un esqueleto de código fuente para las clases de persistencia. Esto no es necesario si se utiliza una anotación. Hibernate puede usar un archivo XML o anotaciones para soportar el esquema de la base de datos .
Proporciona la capacidad de organizar la relación entre las clases " uno a muchos " y " muchos a muchos ". Además de administrar las relaciones entre objetos, Hibernate también puede administrar relaciones reflexivas , donde un objeto tiene una relación de uno a muchos con otras instancias de su propio tipo de datos .
Hibernate admite el mapeo de tipos de valores personalizados. Esto hace posible los siguientes escenarios:
Las colecciones de objetos de datos normalmente se almacenan como colecciones de objetos Java, como Set y List. Se admiten los genéricos introducidos en Java 5. Hibernate se puede configurar para recopilaciones de carga diferida. Lazy loading es la opción predeterminada desde Hibernate 3.
Los objetos vinculados se pueden configurar para operaciones en cascada . Por ejemplo, la clase principal Álbum (álbum de música) se puede configurar para guardar en cascada y/o eliminar su Pista secundaria. Esto puede reducir el tiempo de desarrollo y garantizar la integridad del . La función de verificación sucia evita el registro innecesario de acciones en la base de datos al realizar una actualización de SQL solo cuando cambian los campos de los objetos persistentes.
El éxito de la biblioteca Hibernate llevó a JCP a desarrollar la especificación JDO, que se ha convertido en una de las tecnologías ORM estándar en la plataforma JavaEE. Hibernate también cumple con JSR-220/317 y proporciona instalaciones JPA estándar.
Hibernate proporciona un lenguaje de consulta de Hibernate similar a SQL ( HQL) que le permite ejecutar consultas similares a SQL escritas junto a los objetos de datos de Hibernate. Las consultas de criterios se proporcionan como una alternativa orientada a objetos a HQL.
Hibernate se puede usar tanto en aplicaciones Java independientes como en programas Java EE que se ejecutan en un servidor (como un servlet o EJB ). También se puede incluir como una característica adicional a otros lenguajes de programación. Por ejemplo, Adobe ha integrado Hibernate en la novena versión de ColdFusion (que se ejecuta en servidores que admiten aplicaciones J2EE ) con una capa de abstracción de nuevas funciones y sintaxis adjunta a CFML .
Hibernate ORM (antes de la versión 4.1 se llamaba Hibernate Core [2] ) - Hibernate core, API propia, xml-mapping (visualización) de metadatos de objetos (soporte para metadatos en forma de anotaciones desde la versión 3.6) [3]
Anotaciones de Hibernate (desde la versión 3.6 fusionada con Hibernate Core / ORM): mapeo (mapeo) usando anotaciones JDK 5.0, tanto estándar para JPA como extensiones nativas [4]
Hibernate EntityManager: implementación de la API de persistencia de Java para Java SE y Java EE [5]
Hibernate Envers - auditar clases persistentes [6] Hibernate OGM - Object / Grid Mapper - extensión para almacenar datos en almacenamiento NoSQL [7]
Hibernate Shards: un marco para la fragmentación de bases de datos: una solución arquitectónica para el escalado horizontal con particiones de tablas de bases de datos en segmentos de alguna manera sin recursos compartidos [8]
Hibernate Validator: anotaciones y API para validación e integridad de datos
Búsqueda de Hibernate: integración de Hibernate con el motor de búsqueda de Lucene , con el fin de indexar y buscar datos
Hibernate Tools: herramientas de desarrollo para Eclipse y Ant
Hibernate Metamodel Generator es un procesador de anotaciones que genera clases de metamodelos estáticos JSR 317 Java Persistence API (JPA 2) utilizando la API de procesamiento de anotaciones conectable JSR 269 [9]
La versión 1.0 se lanzó en julio de 2002, un año después salió la versión 2.0 y un año después, la 3.0. El lanzamiento del 16 de octubre de 2006 introdujo Hibernate Core, Annotations, Entity Manager (versión 3.2.0.GA con soporte JPA ). En diciembre de 2013, se lanzó Hibernate ORM 4.3.0. En septiembre de 2015, se lanzó Hibernate ORM 5.0.2.
API de persistencia de Java | |
---|---|
|
Java | |
---|---|
Plataformas | |
Tecnologías solares | |
Tecnologías clave de terceros | |
Historia |
|
Propiedades del lenguaje | |
Lenguajes de secuencias de comandos |
|
Conferencias Java |
|