2010-05-28 9 views
2

J'ai regardé sur le web pour des exemples sur les agrégats comme le nombre mais il semble que tous utilisent l'agrégat seul .JPA Y a-t-il un moyen de faire quelque chose comme SELECT <field>, compter (*) FROM <table> GROUP BY <field>

 
SELECT field, count(*) FROM table GROUP BY field 

Should have something like: 

field.value1, x1 
field.value2, x2 
.... 

Je cherche une réponse JPA pure pour celui-ci. Si non, je suppose que je peux alors faire d'autres requêtes juste pour la partie de compte, mais cela semble inefficace.

Des idées?

Répondre

3

Je ne suis pas sûr que je compris la question, mais ne pas la requête suivante JPQL faites ce que vous voulez:

SELECT p.name, count(p) from Product p group by p.name 

Vous pouvez récupérer les données comme ceci:

Liste datos = (Liste) query.getResultList();

où Object [0] est le premier champ, Object [1] le second et ainsi de suite.

+0

Ensuite, comment puis-je récupérer les valeurs du résultat? Ce ne sera plus une entité de produit? – javydreamercsw

+1

Voir ceci [réponse précédente] (http://stackoverflow.com/questions/2936685/jpql-what-kind-of-objects-contains-a-result-list-when-querying-multiple-columns/2936713#2936713) . –

+0

Le premier objet Object [0] sera de type Product, le second Object [1], sera probablement de type "Integer" – slambeth