Saltar la navegación

6.2. Ejemplos

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