Hibernate Fetch y Lazy Loading

Hibernate (http://www.hibernate.org/) es una potente herramienta de persistencia que nos permite mapear clases en una base de datos relacional.

En este tutorial vamos a ver como se comportan ciertas relaciones, y como podemos optimizar las consultas a la base de datos. No pretende ser una guía detallada, sino una introducción a las características de Hibernate en este sentido.

Hibernate: Buenas Prácticas

Pero el uso de un ORM también puede causar problemas si no tenemos en cuenta unas ciertas buenas prácticas. 

Hibernate + Ant

Hibernate Filters

Hibernate3 proporciona un nuevo enfoque innovador para manejar datos con reglas de "visibilidad". Unfiltro Hibernate es un filtro global, con nombre y parametrizado que puede ser habilitado o deshabilitado para una sesión de Hibernate especifica.

Hibernate HQL Sub Select (Subconsultas)

Hibernate HQL Group By

Hibernate HQL Order By

Hibernate HQL Join

Ejemplos de HQL

Interceptores y Eventos en Hibernate

Es útil para la aplicación reaccionar a ciertos eventos que ocurren dentro de Hibernate. Esto permite la implementación de funcionalidades genéricas y la extensión de la funcionalidad de Hibernate.

Hibernate Criteria

Acompaña a Hibernate una API de consultas por criterios intuitiva y extensible.

¿Qué es Hibernate?

Cuando comenzamos a estudiar Java escuchamos nombrar este Framework de Java y en repetidas ocasiones nos preguntamos para qué sirve o por qué utilizarlo. En esta nota encontrarás respuestas a algunos de esos interrogantes.

Hibernate Mapping: Testear mapeos

Revolviendo la web por ahí me encuentro con un muy pequeño ejemplo de cómo, con pocas líneas, testear todos los mapeos de Hibernate de una aplicación. El test comprueba que sintácticamente estén bien escritos todos los mapeos, que las columnas mapeadas existan y se puedan asignar a atributos de los objetos. Para hacer uso se utiliza el API de Hibernate para pedirle todos los mapeos que tiene, y luego se usa esta información para tirar un query por cada mapeo.

Hibernate HQL con Eficiencia

Hibernate provee varias formas de ejecutar un mismo Query HQL, devolviendo los resultados de distintas maneras. La interfaz que se utiliza para la ejecución de queries es precisamente org.hibernate.Query que provee 3 metodos para obtener los resultados de un Query: list()iterate() y scroll().

Hibernate 3.3

Después de muchos meses de trabajo ya se puede descargar Hibernate 3.3 GA, la nueva versión del ORM más utilizado para Java. Entre las novedades más destacadas frente a la versión 3.2 anterior:
  • Migración a un sistema de construcción con Maven.
  • División del proyecto en varios módulos jar (al estilo de módulos Maven), lo que facilita el ver y administrar las dependencias.
  • Rediseño de las SPI para el caché de segundo nivel.
  • Integración con JBossCache 2.x como proveedor de caché de segundo nivel.

Hibernate Criteria + Spring

Hibernate Criteria es una API que nos facilita las consultas (no las inserciones) a la base de datos. La ventaja fundamental de esta API es que nos permite tratar la composición de la consulta de una forma totalmente orientada a objetos. Es decir, no compone la consulta a través de una cadena insertada por nosotros mismos, sino que la compone la propia API a través de unas propiedades que nosotros establecemos.

Hibernate Annotations

Uno de los problemas mas frecuentes al trabajar con Hibernate, es la generación de los mapping files. (archivos .hbm.xml). Hay varias opciones para generarlos, desde escribirlos a mano hasta usar varios de los generadores automáticos.

Mapeo en Hibernate (hbm.xml)


Para generar un mapeo de un objeto Java a Hibernate debemos contar con el Bean inicial.
La version java de la clase Person seria algo asi: