У меня есть querydsl для извлечения данных с группировкой и суммой, что-то вроде этого
var query = queryFactory
.select(Projections.constructor(DistributionData.class, entity.date, entity.type,
entity.whiteCase.sum(), entity.blackCase().sum()))
.from(entity).where(where).groupBy(entity.date, entity.type);
var listDataSum = query.limit(size).offset(page).orderBy(entity.date.asc(), entity.type.asc()).fetch();
Это будет производить запрос вроде:
select date, type, sum(white_case), sum(black_case)
from table
group by date, type
Но теперь мне нужно обработать нумерация страниц, чтобы получить общее количество агрегированных строк, возвращаемых querydsl. В нативном SQL означает создание некоторого запроса, например
select count(*) from
(
// generated query above
)
Как я могу создать этот запрос подсчета? Использование query.fetchCount()
не сработало, потому что это сгенерирует этот запрос:
select count(distinct distributionData.date, distributionData.type) ....
, поэтому fetchCount()
не упаковывает запрос, а вместо этого обернет поля count
.
Спасибо