JPA/JPQL COUNT question
J'ai la suite de la requête JPQL -
SELECT f.md5
FROM File f, Collection leafCollections, Collection instCollections
WHERE (f.status = com.foo.bar.FileStatus.Happy OR f.status = com.foo.bar.FileStatus.Sad)
AND f.collectionId = leafCollections.collectionId
AND leafCollections.instanceCollectionId = instCollections.collectionId
GROUP BY f.md5, instCollections.collectionId
Essentiellement, il renvoie le md5s pour les fichiers qui sont organisés dans une hiérarchie (arbre) de telle sorte que si le même MD5 apparaît dans plus d'une feuille dans une branche particulière de la hiérarchie, il sera seulement indiqué qu'une fois (merci pour le GROUP BY).
Cela fonctionne bien. Disons que je reçois 100 lignes de retour. Chaque ligne contenant un md5 comme une chaîne de caractères.
Maintenant je veux obtenir le COMPTER du nombre de lignes retournées. Je pensais que je pouvais tout simplement faire:
SELECT COUNT(f.md5)
FROM File f, Collection leafCollections, Collection instCollections
WHERE (f.status = com.foo.bar.FileStatus.Happy OR f.status = com.foo.bar.FileStatus.Sad)
AND f.collectionId = leafCollections.collectionId
AND leafCollections.instanceCollectionId = instCollections.collectionId
GROUP BY f.md5, instCollections.collectionId
Toutefois cela renvoie 100 lignes, chacune contenant un long représentant le nombre de fois que le md5 est apparu dans une branche. Ce que je voulais, c'était simplement pour obtenir 1 rangée de retour avec une longue valeur de 100 le nombre total de lignes de la requête d'origine retourné. J'ai l'impression de rater quelque chose d'évident.
Suggestions?
Une suggestion: Veuillez insérer votre code ( ou d'une requête dans ce cas) à l'intérieur d'un bloc de code. (Mettre en évidence le code et appuyez sur ctrl+k ou ^k pour les utilisateurs de mac )
OriginalL'auteur NBW | 2011-01-22
Vous devez vous connecter pour publier un commentaire.
@Doc_180 a commenté. À l'aide de
getSingleResult()
donnera le comteUtiliser le code suivant pour obtenir le résultat.
OriginalL'auteur Talha Ahmed Khan