Ejercicio de programación con Hibernate: Consultas Criteria avanzadas
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.
Consultas JPQL avanzadas
Configuración con JPA
Tipos de datos personalizados
Operaciones en cascada
Anotaciones JPA
Asociación Many To One
Funciones en consultas JPQL
Asociación Many To Many entre Actor y Pelicula
Asociación One To Many entre Curso y Estudiante
Tipos de datos básicos
Consultas Criteria básicas
Asociación Many To Many
CRUD de entidades con asociaciones
Optimización de asociaciones con carga lazy
Asociación One To Many
Configuración con Maven
Asociación One To One
CRUD en Hibernate
Operaciones en cascada
Certificados de superación de Hibernate
Supera todos los retos de Hibernate y obtén estos certificados de superación para mejorar tu currículum y tu empleabilidad.
Tutorial para resolver este ejercicio de programación
Hibernate
Consultas Criteria avanzadas
API Criteria de JPA