/
[FDJ-030] Desarrollo de Aplicaciones con JPA
[FDJ-030] Desarrollo de Aplicaciones con JPA
Contenido
- Introducción a JPA
Mapeo de Entidades
- Definición y configuración de entidades en JPA
Manejo del EntityManager
- Operaciones básicas: persistencia, actualización, eliminación y consulta de entidades
Ciclo de Vida de una Entidad
- Estados de una entidad: transitoria, persistente y eliminada
- Eventos del ciclo de vida: @PrePersist, @PostPersist, @PreRemove, @PostRemove, @PreUpdate, @PostUpdate
Mapeo de Colecciones
- Mapeo de colecciones de entidades: List, Set, etc
Mapeo de Relaciones entre Entidades
- Relaciones uno a uno, uno a muchos, muchos a uno, muchos a muchos
- Relaciones bidireccionales y unidireccionales
Cascade
- Propagación de operaciones sobre entidades relacionadas (persist, merge, remove)
Inicialización Perezosa
- Configuración de la carga perezosa (Lazy Loading) y carga inmediata (Eager Loading)
Mapeo de Herencia
- Estrategias de mapeo de herencia: Tabla por clase (SINGLE_TABLE), Tabla por jerarquía (JOINED), Tabla por subclase (TABLE_PER_CLASS)
Consultas JPQL
- Lenguaje de consultas de JPA: sintaxis, filtros, ordenamiento, agrupamiento y unión de resultados
Consultas Criteria
- Uso de la API Criteria para crear consultas tipo SQL de manera programática y flexible
Concurrencia y Transacciones
- Control de concurrencia en JPA: optimista y pesimista
- Versionado de entidades y mecanismos de bloqueo
Patrones de Uso
- Patrones comunes en la gestión de sesiones: OpenSessionInView y ConversationFilter
Integración con Spring y Spring Boot