【发布时间】:2019-07-13 23:27:47
【问题描述】:
我需要对如下所示的查询实现分页:
select a,b,c, sum(b) from t group by a,b,c
为了做到这一点,我需要计算行数。在 SQL 中最简单的方法是在 from 子句上使用子查询:
select count(*) from select a,b,c sum(d) from t group by a,b,c
如何在标准 api 中做到这一点?据我所知,JPA 不支持 from 子句中的子查询(Hibernate 也不支持)。使用本机查询不是一个选项,因为我有相当复杂的动态 where 条件,并且获取整个列表只是为了获取大小似乎是错误的。
【问题讨论】:
-
如果您要求 JPA Criteria API,为什么要使用 hibernate-criteria 标签标记问题?
-
另外,通过添加实体类的基本部分以及您迄今为止尝试过的内容来改进您的问题
-
如果它是休眠标准或标准 api 对我来说真的没那么重要(即使首选 JPA 方法,我也可以同时使用这两种方法)。我需要的是能够从数据库中获取聚合行数,并能够限制结果集的开头和结尾(setFirstResult(int), setMaxResult(int))
标签: hibernate jpa hibernate-criteria criteria-api