def obtenerCantidadCalificaciones(CalificacionGrupo calificacionGrupoInstance){
def c = Calificacion.createCriteria()
def results = c {
calificacionGrupo{
horario{
eq 'id', calificacionGrupoInstance?.horario?.id
}
instrumentoEvaluacion{
eq 'id', calificacionGrupoInstance?.instrumentoEvaluacion?.id
}
}
projections {
groupProperty("alumno")
count("alumno", 'cantidad') //Implicit alias is created here !
}
order 'cantidad'
}
results
}
/**
* Consulta HQL que obtiene el número de calificaciones de los alumnos para un instrumento dentro de una evaluación
* @param calificacionGrupoInstance
*/
def obtenerCantidadCalificacionesHQL(CalificacionGrupo calificacionGrupoInstance){
String query = """
SELECT CONCAT(a.nombre, ' ', a.apellidoPrimero, ' ', a.apellidoSegundo),
COUNT(c) as Cantidad
FROM Alumno as a
LEFT JOIN a.calificaciones as c
LEFT JOIN c.calificacionGrupo as cg
WHERE cg.instrumentoEvaluacion = :instrumento
AND
cg.evaluacion = :evaluacion
GROUP BY a.id
ORDER BY a.nombre
"""
List queryResults = Alumno.executeQuery(query,
[instrumento: calificacionGrupoInstance?.instrumentoEvaluacion,
evaluacion: calificacionGrupoInstance?.evaluacion])
}
--
Has recibido este mensaje porque estás suscrito al grupo "grailsEnCastellano" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a grailsencastellano+unsub...@googlegroups.com.
Para publicar en este grupo, envía un correo electrónico a grailsencastellano@googlegroups.com.
Visita este grupo en https://groups.google.com/group/grailsencastellano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
/**
* Consulta HQL que obtiene el número de calificaciones de los alumnos para un instrumento dentro de una evaluación
* @param calificacionGrupoInstance
*/
def obtenerCantidadCalificacionesHQL(CalificacionGrupo calificacionGrupoInstance){
String query = """
SELECT CONCAT(a.nombre, ' ', a.apellidoPrimero, ' ', a.apellidoSegundo),
COUNT(c) as Cantidad
FROM Alumno a
LEFT JOIN fetch a.calificaciones c
LEFT JOIN c.calificacionGrupo cg WITH cg.instrumentoEvaluacion = :instrumento AND cg.evaluacion = :evaluacion
GROUP BY a.id
ORDER BY a.nombre
"""
List queryResults = Alumno.executeQuery(query,
[instrumento: calificacionGrupoInstance?.instrumentoEvaluacion,
evaluacion: calificacionGrupoInstance?.evaluacion])
}
He estando mirando el error y ya sé lo que es una driving table. Pero claro si hago solo un left join si que me funciona pero en el momento que encadeno un left join más deja de funcionar. Muchas gracias pero ahora he llegado a otro callejón, seguiré investigando a ver que averiguo.
Para publicar en este grupo, envía un correo electrónico a grailsenc...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/grailsencastellano.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
/**
* Consulta HQL que obtiene el número de calificaciones de los alumnos para un instrumento dentro de una evaluación
* @param calificacionGrupoInstance
*/
def obtenerCantidadCalificacionesHQL(CalificacionGrupo calificacionGrupoInstance){
String query = """
SELECT CONCAT(a.nombre, ' ', a.apellidoPrimero, ' ', a.apellidoSegundo),
COUNT(c) as Cantidad
FROM Alumno a
LEFT JOIN a.calificaciones c WITH c.nota = 'B1'
GROUP BY a.id
ORDER BY a.nombre
"""
List queryResults = Alumno.executeQuery(query)
}
}