[英]Count number of group by rows in hibernate with criteria
我想用休眠標准API計算group by
行group by
的數量,但我只能計算每個組中匯總的行數:
ProjectionList projectionList = Projections.projectionList()
.add(Projections.groupProperty("color"))
.add(Projections.rowCount());
Criteria criteria = session.createCriteria("ProductEntity");
criteria.setProjection(projectionList);
// adding some criteria
List results = criteria.list();
上面的代碼將導致此查詢:
select p.color, count(*) from product p group by p.color
但是我想要這個查詢:
select count(*) from (select p.color from product p group by p.color)
我知道使用HQL是可能的,但是我不想使用它。 那么如何使用Criteria API做到這一點呢?
如果您想知道有多少種不同的顏色應該使用
Projections.countDistinct("color")
這將導致查詢,該查詢將返回與此相同的結果:
select count(*) from (select p.color from product p group by p.color)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.