2011-11-19 21 views
7

Estoy teniendo una relación @ManyToMany entre una entidad de pregunta y una entidad de categoría. Quiero contar el número de preguntas en cada categoría. ¿Como podría hacerlo?Usando GROUP BY en JPA

+0

Para ser sincero, no tengo Idea por dónde empezar. Empecé con esto: @NamedQuery (name = "Cateogory.questionDistribution", query = "SELECCIONE c.description, COUNT (c) FROM Categoría c GROUP BY (.... – LuckyLuke

+0

Parece que estuvo cerca, pero el resto de la consulta habría ayudado a determinar que más. –

+0

¿Cómo se define el tipo de búsqueda para la Pregunta en su entidad de categoría? – Perception

Respuesta

9
select count(question.id), category.description 
from Category category 
left join category.questions question 
group by category.description 
+1

¿Puedo preguntar una cosa más, qué devuelve esta consulta? ¿Un hashmap? Y si es así cuáles son las claves a las que accedo los valores con? Nunca he seleccionado solo algunos atributos. – LuckyLuke

+3

Devuelve una lista . Cada objeto [] tiene dos elementos: el recuento (como un largo) y la descripción (como una cadena). Consulte http: // docs. .jboss.org/hibernate/core/3.6/reference/en-US/html_single/# queryhql-select –

+1

Impresionante, gracias! Aprendí dos cosas nuevas ahora :) – LuckyLuke