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.
Más de 25.000 desarrolladores ya confían en CertiDevs
- 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();
}
}
Solución al ejercicio
¡Desbloquea la solución completa!
Completa el examen para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
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