критерии гибернации считаются с группой по - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть приложение spring с сущностью user и таблицей users.Я хотел бы получить количество всех пользователей, сгруппированных по определенным полям (не по группе, а всего ).В SQL это будет:

select
count(*) OVER () as totalRecords
  from users u
  group by
    u.first_name,
    u.last_name,
    u.age
  order by u.age DESC
OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY;

Но я действительно не могу сделать это, используя критерии гибернации.Я мог бы сделать что-то вроде:

public Long getTotalCount() {
        ProjectionList groupBy = projectionList();
        groupBy.add(groupProperty("firstName"), "first_name");
        groupBy.add(groupProperty("last_name"), "last_name");
        groupBy.add(groupProperty("age"), "age");
        groupBy.add(Projections.rowCount());

        return (Long) getSession().createCriteria("User")
                .setProjection(groupBy)
                .uniqueResult();
    }

но это не то, что я хочу.Он рассчитывает на каждую группу, я хотел бы подсчитать строки, которые являются результатом group by предложения

...