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.

Consultas JPQL avanzadas

Hibernate
Código

Configuración con JPA

Hibernate
Test

Tipos de datos personalizados

Hibernate
Puzzle

Operaciones en cascada

Hibernate
Test

Anotaciones JPA

Hibernate
Puzzle

Asociación Many To One

Hibernate
Test

Funciones en consultas JPQL

Hibernate
Código

Asociación Many To Many entre Actor y Pelicula

Hibernate
Código

Asociación One To Many entre Curso y Estudiante

Hibernate
Código

Tipos de datos básicos

Hibernate
Test

Consultas Criteria básicas

Hibernate
Código

Asociación Many To Many

Hibernate
Puzzle

CRUD de entidades con asociaciones

Hibernate
Proyecto

Optimización de asociaciones con carga lazy

Hibernate
Código

Asociación One To Many

Hibernate
Puzzle

Configuración con Maven

Hibernate
Test

Asociación One To One

Hibernate
Test

CRUD en Hibernate

Hibernate
Código

Operaciones en cascada

Hibernate
Puzzle

Introducción a Hibernate

Hibernate
Test

Atributos de tipo enum en entidades JPA

Hibernate
Código

Carga de asociaciones en consultas con EntityGraph

Hibernate
Código

Configuración con Gradle

Hibernate
Test

Asociación One To One entre Libro y Resumen

Hibernate
Código

Asociación One To Many

Hibernate
Test

Asociación Many To Many

Hibernate
Test

Creación de entidades

Hibernate
Test

Ciclo de vida de una entidad

Hibernate
Código

Consultas JPQL básicas

Hibernate
Código

Carga de asociaciones en consultas con EntityGraph y anotaciones

Hibernate
Código

Tipos de datos embebidos

Hibernate
Código

Asociación Many To One entre Paciente y Clinica

Hibernate
Código

Asociación Many To One

Hibernate
Puzzle

Optimización de consultas con DTOs

Hibernate
Código

Atributos @Transient en entidades

Hibernate
Código

Asociación One To One

Hibernate
Puzzle

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

Hibernate

Consultas Criteria avanzadas

API Criteria de JPA

Otros tutoriales de programación con Hibernate

Introducción A Hibernate

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Maven

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Jpa

Hibernate

Introducción Y Entorno

Configuración Hibernate Con Gradle

Hibernate

Introducción Y Entorno

Tipos De Datos En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Ciclo De Vida De Una Entidad

Hibernate

Entidades Jpa Y Tipos De Datos

Atributos @Transient En Entidades

Hibernate

Entidades Jpa Y Tipos De Datos

Enums En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Tipos De Datos Embebidos

Hibernate

Entidades Jpa Y Tipos De Datos

Creación De Entidades Jpa

Hibernate

Entidades Jpa Y Tipos De Datos

Crud En Hibernate

Hibernate

Entidades Jpa Y Tipos De Datos

Asociación One To One

Hibernate

Asociaciones Entre Entidades

Asociación Many To One

Hibernate

Asociaciones Entre Entidades

Asociación One To Many

Hibernate

Asociaciones Entre Entidades

Asociación Many To Many

Hibernate

Asociaciones Entre Entidades

Operaciones En Cascada

Hibernate

Asociaciones Entre Entidades

Consultas Jpql Básicas

Hibernate

Consultas Hql Y Jpql

Consultas Jpql Avanzadas

Hibernate

Consultas Hql Y Jpql

Funciones En Consultas Jpql

Hibernate

Consultas Hql Y Jpql

Consultas Criteria Básicas

Hibernate

Api Criteria De Jpa

Carga De Asociaciones En Consultas Con Entitygraph

Hibernate

Api Entitygraph

Carga De Asociaciones En Consultas Con Entitygraph Y Anotaciones

Hibernate

Api Entitygraph

Optimización De Asociaciones Con Carga Lazy

Hibernate

Optimización

Optimización De Consultas Con Dtos

Hibernate

Optimización