Ejercicio de programación con Hibernate: Consultas Criteria avanzadas

Código
Práctica
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 y Departamento.
  • 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();
    }
}
Empezar ejercicio de programación

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

Hibernate
Puzzle

Carga de asociaciones en consultas con EntityGraph

Hibernate
Código

Carga de asociaciones en consultas con EntityGraph y anotaciones

Hibernate
Código

CRUD en Hibernate

Hibernate
Código

Funciones en consultas JPQL

Hibernate
Código

Asociación Many To Many

Hibernate
Puzzle

Asociación One To One

Hibernate
Puzzle

Asociación Many To One

Hibernate
Puzzle

Tipos de datos embebidos

Hibernate
Código

Asociación Many To Many entre Actor y Pelicula

Hibernate
Código

CRUD de entidades con asociaciones

Hibernate
Proyecto

Asociación Many To One

Hibernate
Test

Optimización de asociaciones con carga lazy

Hibernate
Código

Asociación One To Many

Hibernate
Test

Atributos de tipo enum en entidades JPA

Hibernate
Código

Configuración con Maven

Hibernate
Test

Asociación Many To Many

Hibernate
Test

Consultas Criteria básicas

Hibernate
Código

Introducción a Hibernate

Hibernate
Test

Configuración con Gradle

Hibernate
Test

Asociación One To Many entre Curso y Estudiante

Hibernate
Código

Operaciones en cascada

Hibernate
Puzzle

Operaciones en cascada

Hibernate
Test

Consultas JPQL básicas

Hibernate
Código

Tipos de datos básicos

Hibernate
Test

Asociación One To One

Hibernate
Test

Asociación One To One entre Libro y Resumen

Hibernate
Código

Optimización de consultas con DTOs

Hibernate
Código

Asociación Many To One entre Paciente y Clinica

Hibernate
Código

Atributos @Transient en entidades

Hibernate
Código

Tipos de datos personalizados

Hibernate
Puzzle

Ciclo de vida de una entidad

Hibernate
Código

Consultas JPQL avanzadas

Hibernate
Código

Configuración con JPA

Hibernate
Test

Tutorial para resolver este ejercicio de programación

Hibernate

Hibernate

Consultas Criteria avanzadas

API Criteria

Otros tutoriales de programación con Hibernate