FROM
@NamedQuery(name="listaAsignaturas", query="from AsignaturaEntity a")
SELECT
@NamedQuery(name="listaAsignaturas", query="select a.nombre from AsignaturaEntity a")
WHERE
@NamedQuery(name="listaAsignaturasPrimero", query="from AsignaturaEntity a where a.curso=1")
@NamedQuery(name="listaAsignaturasCurso", query="from AsignaturaEntity a where a.curso=:curso")
Agregación
Las funciones de agregación son:
- avg(...),
- sum(...),
- min(...),
- max(...)
- count(*), count(...), count(distinct ...), count(all...)
@NamedQuery(name = "numeroAlumnado", query = "select count(a) from AlumnadoEntity a")
public long resultado(String namedQuery) {
Query lista = sesion.getNamedQuery(namedQuery);
return (long)lista.uniqueResult();
}
JOIN
El siguiente ejemplo muestra cómo mostrar la información del alumnado matriculado:
@NamedQuery(
name = "alumnadoMatriculado",
query = "select m from AlumnadoEntity a JOIN a.listaAlumnadoMatricula m JOIN m.asignatura asig"
)
private static void listarMatriculas() throws Exception {
instancia.abrir();
List<MatriculaEntity> lista = instancia.listar("alumnadoMatriculado");
for (int i = 0; i < lista.size(); i++) {
System.out.println(
lista.get(i).getAlumnado().getNombreCompleto() + " " +
lista.get(i).getAsignatura().getNombre()+" "+
lista.get(i).getAsignatura().getCurso()+"º"
);
}
instancia.cerrar();
}