Está en la página 1de 2

Guía: 3

Curso: JSF modulo I


Título: Querys JPA
Tiempo de Ejecución: 3 horas

I. OBJETIVOS

Que el participante:
 Desarrolle query JPA con JPQL
JPQL.
 Aplique las relaciones Lazy

II. DESARROLLO

Parte I JPQL

1. Ejecute los siguientes querys seg


según el modelo del proyecto Satélite.
Satélite Elaborando
cada uno y el respectivo TEST

Path expression

SELECT c.ListaAlumnos from Curso c where c.nombre=:nombre

Distinct

Select distinct c.ListaAlumnos


staAlumnos from Curso c

Projection
No se retorna un objeto complete solamente los datos que necesitamos, se optimiza el
query a utilizar en SQL y se puede utilizar solo los campos necesarios a mostrar.
mos

Select c.nombre,c.fechainicio from Curso c

Constructor Expresion

Cree una nueva clase llamada AlumnoJPA con los siguientes campos.

nombreAlumno, nombreCurso

Ejecute el query que retorne objetos de la clase A


AlumnoJPA

Select Distinct new AlumnoJPA(


AlumnoJPA(a.nombre,c.nombre) from Alumno
lumno a join
a.ListaCursos c where c.nombre =
=’JPA’

Not empty

Select a from Alumnos a where a.listaCursos is NOT EMPTY

1 Grupo Satélite
OUTER JOIN

Select a,c from Alumnos a LEFT JOIN a.listaCursos c

FETCH JOIN
Ayudan a optimizar los querys navegando solamente por las colecciones que definen el
join.
Para el caso modificando la relación en la entidad TipoCurso para incluir una lista de
cursos. En este caso la relación es cargada con FetchType Lazy es decir solamente si se
requiere hacer un get a la colección cursos.

@OneToMany(fetch= FetchType.LAZY)
List<Curso> cursos = new ArrayList();

Select t from TipoCurso join fetch t.Cursos

Group by

Select c , count(a) from Cursos c join c.listaAlumnos a group by c

2. Ejercicios

Elabore los querys anteriores con las entidades de su proyecto.

2 Grupo Satélite

También podría gustarte