Hibernate.orgCommunity Documentation

HIBERNATE - Persistencia relacional para Java idiomático

Documentación de referencia de Hibernate

3.5.6-Final

Advertencia legal

September 15, 2010


Prefacio
1. Tutorial
1.1. Parte 1 - La primera aplicación Hibernate
1.1.1. Configuración
1.1.2. La primera clase
1.1.3. El archivo de mapeo
1.1.4. Configuración de Hibernate
1.1.5. Construcción con Maven
1.1.6. Inicio y ayudantes
1.1.7. Carga y almacenamiento de objetos
1.2. Part 2 - Mapeo de asociaciones
1.2.1. Mapeo de la clase Person
1.2.2. Una asociación unidireccional basada en Set
1.2.3. Trabajo de la asociación
1.2.4. Colección de valores
1.2.5. Asociaciones bidireccionales
1.2.6. Trabajo con enlaces bidireccionales
1.3. Part 3 - La aplicación web EventManager
1.3.1. Escritura de un servlet básico
1.3.2. Procesamiento y entrega
1.3.3. Despliegue y prueba
1.4. Resumen
2. Arquitectura
2.1. Sinopsis
2.2. Estados de instancia
2.3. Integración JMX
2.4. Soporte JCA
2.5. Sesiones contextuales
3. Configuración
3.1. Configuración programática
3.2. Obtención de una SessionFactory
3.3. Conexiones JDBC
3.4. Parámetros de configuración opcionales
3.4.1. Dialectos de SQL
3.4.2. Recuperación por Unión Externa - Outer Join Fetching
3.4.3. Flujos Binarios
3.4.4. Caché de segundo nivel y de lectura
3.4.5. Sustitución de Lenguaje de Consulta
3.4.6. Estadísticas de Hibernate
3.5. Registros de mensajes (Logging)
3.6. Implementación de una NamingStrategy
3.7. Archivo de configuración XML
3.8. Integración con Servidores de Aplicaciones J2EE
3.8.1. Configuración de la estrategia de transacción
3.8.2. SessionFactory enlazado a JNDI
3.8.3. Administración de contexto de Sesión Actual con JTA
3.8.4. Despliegue JMX
4. Clases persistentes
4.1. Ejemplo simple de POJO
4.1.1. Implemente un constructor sin argumentos
4.1.2. Proporcione una propiedad identificadora (opcional)
4.1.3. Prefiera las clases no finales (opcional)
4.1.4. Declare métodos de acceso y de modificación para los campos persistentes (opcional)
4.2. Implementación de herencia
4.3. Implementando equals() y hashCode()
4.4. Modelos dinámicos
4.5. Tuplizers
4.6. EntityNameResolvers
5. Mapeo O/R Básico
5.1. Declaración de mapeo
5.1.1. Doctype
5.1.2. Mapeo de Hibernate
5.1.3. Clase
5.1.4. id
5.1.5. Generadores mejorados del identificador
5.1.6. Optimización del generador del identificador
5.1.7. composite-id
5.1.8. Discriminador
5.1.9. Versión (opcional)
5.1.10. Timestamp (opcional)
5.1.11. Propiedad
5.1.12. Many-to-one
5.1.13. One-to-one
5.1.14. Natural-id
5.1.15. Componente y componente dinámico
5.1.16. Propiedades
5.1.17. Subclase
5.1.18. joined-subclass
5.1.19. Union-subclass
5.1.20. Join
5.1.21. Key
5.1.22. Los elementos columna y fórmula
5.1.23. Import
5.1.24. Any
5.2. Tipos de Hibernate
5.2.1. Entidades y Valores
5.2.2. Tipos de valores básicos
5.2.3. Tipos de valor personalizados
5.3. Mapeo de una clase más de una vez
5.4. Identificadores SQL en comillas
5.5. Alternativas de metadatos
5.5.1. Utilización de marcado de XDoclet
5.5.2. Utlización de Anotaciones JDK 5.0
5.6. Propiedades generadas
5.7. Expresiones de lectura y escritura de columnas
5.8. Objetos de bases de datos auxiliares
6. Mapeos de colección
6.1. Colecciones persistentes
6.2. Mapeos de colección
6.2.1. Claves foráneas de colección
6.2.2. Elementos de collección
6.2.3. Colecciones indexadas
6.2.4. Colecciones de valores y asociaciones muchos-a-muchos
6.2.5. Asociaciones uno-a-muchos
6.3. Mapeos de colección avanzados
6.3.1. Colecciones ordenadas
6.3.2. Asociaciones bidireccionales
6.3.3. Asociaciones bidireccionales con colecciones indexadas
6.3.4. Asociaciones ternarias
6.3.5. Using an <idbag>
6.4. Ejemplos de colección
7. Mapeos de asociación
7.1. Introducción
7.2. Asociaciones Unidireccionales
7.2.1. Many-to-one
7.2.2. Uno-a-uno
7.2.3. Uno-a-muchos
7.3. Asociaciones unidireccionales con tablas de unión
7.3.1. Uno-a-muchos
7.3.2. Many-to-one
7.3.3. Uno-a-uno
7.3.4. Muchos-a-muchos
7.4. Asociaciones bidireccionales
7.4.1. uno-a-muchos / muchos-a-uno
7.4.2. Uno-a-uno
7.5. Asociaciones bidireccionales con tablas de unión
7.5.1. uno-a-muchos / muchos-a-uno
7.5.2. uno a uno
7.5.3. Muchos-a-muchos
7.6. Mapeos de asociación más complejos
8. Mapeo de componentes
8.1. Objetos dependientes
8.2. Colecciones de objetos dependientes
8.3. Componentes como índices de Mapeo
8.4. Componentes como identificadores compuestos
8.5. Componentes dinámicos
9. Mapeo de herencias
9.1. Las tres estrategias
9.1.1. Tabla por jerarquía de clases
9.1.2. Tabla por subclase
9.1.3. Tabla por subclase: utilizando un discriminador
9.1.4. Mezcla de tabla por jerarquía de clases con tabla por subclase
9.1.5. Tabla por clase concreta
9.1.6. Tabla por clase concreta utilizando polimorfismo implícito
9.1.7. Mezcla de polimorfismo implícito con otros mapeos de herencia
9.2. Limitaciones
10. Trabajo con objetos
10.1. Estados de objeto de Hibernate
10.2. Haciendo los objetos persistentes
10.3. Cargando un objeto
10.4. Consultas
10.4.1. Ejecución de consultas
10.4.2. Filtración de colecciones
10.4.3. Consultas de criterios
10.4.4. Consultas en SQL nativo
10.5. Modificación de objetos persistentes
10.6. Modificación de objetos separados
10.7. Detección automática de estado
10.8. Borrado de objetos persistentes
10.9. Replicación de objetos entre dos almacenamientos de datos diferentes
10.10. Limpieza (flushing) de la sesión
10.11. Persistencia transitiva
10.12. Utilización de metadatos
11. Read-only entities
11.1. Making persistent entities read-only
11.1.1. Entities of immutable classes
11.1.2. Loading persistent entities as read-only
11.1.3. Loading read-only entities from an HQL query/criteria
11.1.4. Making a persistent entity read-only
11.2. Read-only affect on property type
11.2.1. Simple properties
11.2.2. Unidirectional associations
11.2.3. Bidirectional associations
12. Transacciones y concurrencia
12.1. Ámbitos de sesión y de transacción
12.1.1. Unidad de trabajo
12.1.2. Conversaciones largas
12.1.3. Consideración de la identidad del objeto
12.1.4. Temas comúnes
12.2. Demarcación de la transacción de la base de datos
12.2.1. Entorno no administrado
12.2.2. Utilización de JTA
12.2.3. Manejo de excepciones
12.2.4. Tiempo de espera de la transacción
12.3. Control de concurrencia optimista
12.3.1. Chequeo de versiones de la aplicación
12.3.2. Sesión extendida y versionado automático
12.3.3. Objetos separados y versionado automático
12.3.4. Personalización del versionado automático
12.4. Bloqueo pesimista
12.5. Modos de liberación de la conexión
13. Interceptores y eventos
13.1. Interceptores
13.2. Sistema de eventos
13.3. Seguridad declarativa de Hibernate
14. Procesamiento por lotes
14.1. Inserciones de lotes
14.2. Actualizaciones de lotes
14.3. La interfaz de Sesión sin Estado
14.4. Operaciones de estilo DML
15. HQL: El lenguaje de consulta de Hibernate
15.1. Sensibilidad a mayúsculas
15.2. La cláusula from
15.3. Asociaciones y uniones (joins)
15.4. Formas de sintaxis unida
15.5. Referencia a la propiedad identificadora
15.6. La cláusula select
15.7. Funciones de agregación
15.8. Consultas polimórficas
15.9. La cláusula where
15.10. Expresiones
15.11. La cláusula order by
15.12. La cláusula group by
15.13. Subconsultas
15.14. Ejemplos de HQL
15.15. Declaraciones UPDATE y DELETE masivas
15.16. Consejos y Trucos
15.17. Componentes
15.18. Sintaxis del constructor de valores por fila
16. Consultas por criterios
16.1. Creación de una instancia Criteria
16.2. Límitando el conjunto de resultados
16.3. Orden de los resultados
16.4. Asociaciones
16.5. Recuperación dinámica de asociaciones
16.6. Consultas ejemplo
16.7. Proyecciones, agregación y agrupamiento
16.8. Consultas y subconsultas separadas
16.9. Consultas por identificador natural
17. SQL Nativo
17.1. Uso de una SQLQuery
17.1.1. Consultas escalares
17.1.2. Consultas de entidades
17.1.3. Manejo de asociaciones y colecciones
17.1.4. Devolución de entidades múltiples
17.1.5. Devolución de entidades no-administradas
17.1.6. Manejo de herencias
17.1.7. Parámetros
17.2. Consultas SQL nombradas
17.2.1. Utilización de la propiedad return para especificar explícitamente los nombres de columnas/alias
17.2.2. Utilización de procedimientos para consultas
17.3. Personalice SQL para crear, actualizar y borrar
17.4. Personalice SQL para cargar
18. Filtración de datos
18.1. Filtros de Hibernate
19. Mapeo XML
19.1. Trabajo con datos XML
19.1.1. Especificación de los mapeos de XML y de clase en conjunto
19.1.2. Especificación de sólo un mapeo XML
19.2. Mapeo de metadatos XML
19.3. Manipulación de datos XML
20. Mejoramiento del rendimiento
20.1. Estrategias de recuperación
20.1.1. Trabajo con asociaciones perezosas
20.1.2. Afinación de las estrategias de recuperación
20.1.3. Proxies de asociaciones de un sólo extremo
20.1.4. Inicialización de colecciones y proxies
20.1.5. Utilización de recuperación de lotes
20.1.6. Utilización de la recuperación por subselección
20.1.7. Perfiles de recuperación
20.1.8. Utilización de la recuperación perezosa de propiedades
20.2. El Caché de Segundo Nivel
20.2.1. Mapeos de caché
20.2.2. Estrategia: sólo lectura
20.2.3. Estrategia: lectura/escritura (read/write)
20.2.4. Estrategia: lectura/escritura no estricta
20.2.5. Estrategia: transaccional
20.2.6. Compatibilidad de proveedor de caché/estrategia de concurrencia
20.3. Gestión de cachés
20.4. El Caché de Consultas
20.4.1. Habilitación del caché de peticiones
20.4.2. Regiones de caché de consultas
20.5. Comprensión del rendimiento de Colecciones
20.5.1. Taxonomía
20.5.2. Las listas, mapas, idbags y conjuntos son las colecciones más eficientes de actualizar
20.5.3. Los Bags y las listas son las colecciones inversas más eficientes
20.5.4. Borrado de un sólo tiro
20.6. Control del rendimiento
20.6.1. Control de una SessionFactory
20.6.2. Métricas
21. Manual del conjunto de herramientas
21.1. Generación automática de esquemas
21.1.1. Personalización del esquema
21.1.2. Ejecución de la herramienta
21.1.3. Propiedades
21.1.4. Utilización de Ant
21.1.5. Actualizaciones incrementales de esquema
21.1.6. Utilización de Ant para actualizaciones incrementales de esquema
21.1.7. Validación de Esquema
21.1.8. Utilización de Ant para la validación de esquema
22. Ejemplo: Padre/Hijo
22.1. Nota sobre las colecciones
22.2. Uno-a-muchos bidireccional
22.3. Ciclo de vida en cascada
22.4. Cascadas y unsaved-value
22.5. Conclusión
23. Ejemplo: Aplicación de Weblog
23.1. Clases Persistentes
23.2. Mapeos de Hibernate
23.3. Código Hibernate
24. Ejemplo: mapeos varios
24.1. Empleador/Empleado
24.2. Autor/Obra
24.3. Cliente/Orden/Producto
24.4. Mapeos varios de ejemplo
24.4.1. Asociación uno-a-uno "Tipificada"
24.4.2. Ejemplo de clave compuesta
24.4.3. Muchos-a-muchos con atributo compartido de clave compuesta
24.4.4. Discriminación basada en contenido
24.4.5. Asociaciones sobre claves alternativas
25. Prácticas recomendadas
26. Consideraciones de la portabilidad de la base de datos
26.1. Aspectos básicos de la portabilidad
26.2. Dialecto
26.3. Resolución del dialecto
26.4. Generación del identificador
26.5. Funciones de la base de datos
26.6. Mapeos de tipo
Referencias