【发布时间】:2015-01-08 16:08:58
【问题描述】:
我想用 hibernate Criteria API 计算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 做到这一点?
【问题讨论】:
-
Pusker 的答案仅适用于具有一列的 group by 查询。我在这里写了一个答案:stackoverflow.com/a/65030998/2114737
标签: java sql hibernate group-by