簡體   English   中英

使用條件對休眠中的分組行數進行計數

[英]Count number of group by rows in hibernate with criteria

我想用休眠標准API計算group bygroup 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM