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