Как оформить заказ на результат проекции в спящем режиме - PullRequest
3 голосов
/ 16 марта 2012

Я использовал следующие критерии гибернации.

Criteria criteria = session.createCriteria(Student.class);
        ProjectionList projectionList = Projections.projectionList();
       projectionList.add(Projections.groupProperty("studentId"));
       projectionList.add(Projections.count("studentId"));
        criteria.setProjection(projectionList);
      return criteria.list();

Возвращает список объектов, и объекты имеют два поля: studentId и count (studentId). Я хочу отсортировать этот список по количеству (studentId) по убыванию. Как мне сделать это в спящем режиме?

В настоящее время я получаю

{[1, 5], [2, 7], [3,4]} 

Я хочу получить это

{[2, 7], [1, 5], [3,4]}

Решение: это решает проблему:)

  Criteria criteria = session.createCriteria(Student.class);
            ProjectionList projectionList = Projections.projectionList();
           projectionList.add(Projections.groupProperty("studentId"));
           projectionList.add( Projections.alias(Projections.count("studentId"),"count"));
            criteria.setProjection(projectionList);
           criteria.addOrder(Order.desc(("count")));
            return criteria.list();

1 Ответ

4 голосов
/ 02 августа 2013

Поскольку ответ не принят - я немного отформатировал и упростил ваше собственное решение:

Criteria criteria = session.createCriteria(Student.class);
ProjectionList projectionList = Projections.projectionList();
projectionList.add(Projections.groupProperty("studentId"));
projectionList.add(Projections.count("studentId"), "count");
criteria.setProjection(projectionList);
criteria.addOrder(Order.desc(("count")));
return criteria.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...