Критерии гибернации: проецирование графов по группам - PullRequest
3 голосов
/ 13 октября 2010

Я хочу выполнить следующий SQL

select count(*) as myCount from user group by name;

Я придумал следующие критерии для того же

DetachedCriteria.ForClass(typeof(UserDTO))
    .setProjections(Projections.ProjectionList()
                        .Add(Projections.rowCount(),"myCount")
                        .Add(Projections.groupProperty("this.name"));

Я получаю результат в виде пары подсчета и имени. Как я могу получить только отсчет от этого?

Ответы [ 2 ]

0 голосов
/ 22 июля 2014

Вы можете использовать счетчик, если существует только одна группа по столбцу.

HQL:

select count(distinct name) as myCount from user

Критерии:

DetachedCriteria.ForClass(typeof(UserDTO))
.setProjections(Projections.ProjectionList()
                    .Add(Projections.countDistinct("name"),"myCount"));
0 голосов
/ 13 октября 2010

Я не думаю, что вы можете сделать это с критериями, но это легко с HQL. Это та же строка, что и у вашего SQL-запроса, но с именами сущностей / свойств вместо таблиц / столбцов.

...