3
我有以下JPQL查詢 -JPA/JPQL COUNT問題
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
它基本上返回文件,這是在一個層次結構(樹)舉辦這樣的md5s,如果同一個MD5出現在一個以上的葉在層次結構的特定分支中,它只會顯示一次(感謝GROUP BY)。
這工作正常。比方說,我得到100行。每行包含一個md5作爲字符串。
現在我想獲得返回的行的COUNT。我以爲我可以簡單地做:
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
但是這將返回100行,每一個都包含MD5出現了分支的次長代表的數量。我想要的僅僅是獲得1行,長整型值爲100,即原始查詢返回的總行數。我覺得我失去了一些明顯的東西。
對此提出建議?
嗯..你做query.getSingleResult代替getResultList(和把結果以數字)。? – 2011-01-22 07:53:38
建議:請將代碼(或本例中的查詢)放在代碼塊中。 (突出顯示代碼,然後按ctrl + k或^ k爲mac用戶) – 2011-01-22 07:54:11