Consultas Criteria avanzadas

Código
Avanzado
Hibernate
Hibernate
20 min
150 XP
Actualizado: 14/02/2025

¡Practica y certifícate!

Retroalimentación
Soluciones
Certificado
Comenzar

Descripción

Este reto requerirá que realices consultas complejas a una base de datos utilizando Hibernate Criteria API.

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:

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

  • 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();
    }
}

Solución al ejercicio

Contenido bloqueado

¡Desbloquea la solución completa!

Completa el examen para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.

solution.js
JavaScript
1 function solveChallenge ( input ) {
2 // Algoritmo optimizado O(n log n)
3 const data = parseInput ( input );
4 const sorted = data . sort (( a , b ) => a - b );
5
6 // Aplicar técnica de dos punteros
7 let left = 0 , right = sorted . length - 1 ;
8 const result = [];
9
10 while ( left < right ) {
11 const sum = sorted [ left ] + sorted [ right ];
12 if ( sum === target ) {
13 result . push ([ sorted [ left ], sorted [ right ]]);
14 left ++; right --;
15 } else if ( sum < target ) {
16 left ++;
17 } else {
18 right --;
19 }
20 }
21
22 return result ;
23 }
Código completo
Explicaciones
Mejores prácticas
+1.200 developers han resuelto este ejercicio de programación

Practica con exámenes de Hibernate

Mejora tus habilidades con cientos de exámenes de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.

Retroalimentación

Aprende de tus errores

Progreso

Mide tu avance

Certificación

Valida tus habilidades

Únete a miles de desarrolladores mejorando sus habilidades

⭐⭐⭐⭐⭐
4.9/5 valoración