Ejercicio de programación con Hibernate: Consultas Criteria avanzadas
Código
0h 20m
Ejercicios Hibernate Consultas Criteria Avanzadas. Domina las consultas criteria avanzadas en Hibernate mediante ejercicios prácticos y ejemplos claros.
Crea un archivo Java llamado AdvancedCriteriaConsulta.java
. Este archivo deberá contener todo el código necesario para realizar una consulta compleja a una base de datos utilizando Hibernate Criteria API. La consulta deberá cumplir con las siguientes especificaciones:
Modelo de Datos: Supón que existen dos entidades ya definidas y mapeadas:
Empleado
con los siguientes atributos:id
(Long)nombre
(String)departamento
(Departamento)
Departamento
con los siguientes atributos:id
(Long)nombre
(String)
Consulta a Realizar: Utilizando la Criteria API, escribe un código que:
- Realice un join entre
Empleado
yDepartamento
. - Filtre los empleados cuyo departamento tenga de nombre
"mi_departamento"
. - Incluya una subconsulta que seleccione los departamentos con más de 10 empleados.
- Aplique transformaciones de resultados para retornar una lista de objetos que contengan el nombre del empleado y el nombre del departamento.
Asume que sessionFactory
está configurado y disponible globalmente. Puedes basarte en una plantilla como:
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Root;
import jakarta.persistence.criteria.Join;
import jakarta.persistence.criteria.Subquery;
import jakarta.persistence.criteria.Path;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import java.util.List;
public class AdvancedCriteriaConsulta {
private static SessionFactory sessionFactory;
public static void main(String[] args) {
// Apertura de la sesión
Session session = sessionFactory.openSession();
session.beginTransaction();
// Creación de CriteriaBuilder y CriteriaQuery
CriteriaBuilder builder = session.getCriteriaBuilder();
// Consulta principal
CriteriaQuery<Object[]> criteria = builder.createQuery(Object[].class);
// Tu código
// Cierre de la transacción y la sesión
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
Todos los ejercicios de programación de Hibernate
Evalúa tus conocimientos con ejercicios de programación en Hibernate de tipo Test, Puzzle, Código y Proyecto con VSCode.
Asociación One To Many
Puzzle
Carga de asociaciones en consultas con EntityGraph
Código
Carga de asociaciones en consultas con EntityGraph y anotaciones
Código
CRUD en Hibernate
Código
Funciones en consultas JPQL
Código
Asociación Many To Many
Puzzle
Asociación One To One
Puzzle
Asociación Many To One
Puzzle
Tipos de datos embebidos
Código
Asociación Many To Many entre Actor y Pelicula
Código
CRUD de entidades con asociaciones
Proyecto
Asociación Many To One
Test
Optimización de asociaciones con carga lazy
Código
Asociación One To Many
Test
Atributos de tipo enum en entidades JPA
Código
Configuración con Maven
Test
Asociación Many To Many
Test
Consultas Criteria básicas
Código
Introducción a Hibernate
Test
Configuración con Gradle
Test
Asociación One To Many entre Curso y Estudiante
Código
Operaciones en cascada
Puzzle
Operaciones en cascada
Test
Consultas JPQL básicas
Código
Tipos de datos básicos
Test
Asociación One To One
Test
Asociación One To One entre Libro y Resumen
Código
Optimización de consultas con DTOs
Código
Asociación Many To One entre Paciente y Clinica
Código
Atributos @Transient en entidades
Código
Tipos de datos personalizados
Puzzle
Ciclo de vida de una entidad
Código
Consultas JPQL avanzadas
Código
Configuración con JPA
Test
Tutorial para resolver este ejercicio de programación
Hibernate
Consultas Criteria avanzadas
API Criteria