Группа Hibernate по критерию Объект

Я хотел бы реализовать следующий SQL-запрос с помощью Hibernate Criteria:

SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name  value GROUP BY column_name 

Я попытался реализовать это с помощью Hibernate Criteria, но это не сработало.

Может ли кто-нибудь дать мне пример того, как это можно сделать с помощью Hibernate Criteria? Благодаря!

Пожалуйста, обратитесь к этому примеру. Главное – использовать groupProperty() и связанные с ним совокупные функции, предоставляемые classом Projections .

Например :

 SELECT column_name, max(column_name) , min (column_name) , count(column_name) FROM table_name WHERE column_name > xxxxx GROUP BY column_name 

Его эквивалентный объект критериев:

 List result = session.createCriteria(SomeTable.class) .add(Restrictions.ge("someColumn", xxxxx)) .setProjection(Projections.projectionList() .add(Projections.groupProperty("someColumn")) .add(Projections.max("someColumn")) .add(Projections.min("someColumn")) .add(Projections.count("someColumn")) ).list(); 

GroupBy используется в Hibernate

Это полученный код

 public Map getStateCounts(final Collection ids) { HibernateSession hibernateSession = new HibernateSession(); Session session = hibernateSession.getSession(); Criteria criteria = session.createCriteria(DownloadRequestEntity.class) .add(Restrictions.in("id", ids)); ProjectionList projectionList = Projections.projectionList(); projectionList.add(Projections.groupProperty("state")); projectionList.add(Projections.rowCount()); criteria.setProjection(projectionList); List results = criteria.list(); Map stateMap = new HashMap(); for (Object[] obj : results) { DownloadState downloadState = (DownloadState) obj[0]; stateMap.put(downloadState.getDescription().toLowerCase() (Integer) obj[1]); } hibernateSession.closeSession(); return stateMap; } 

Вы можете использовать подход @Ken Chan и добавить одну строку кода после этого, если вам нужен конкретный список объектов, например:

  session.createCriteria(SomeTable.class) .add(Restrictions.ge("someColumn", xxxxx)) .setProjection(Projections.projectionList() .add(Projections.groupProperty("someColumn")) .add(Projections.max("someColumn")) .add(Projections.min("someColumn")) .add(Projections.count("someColumn")) ).setResultTransformer(Transformers.aliasToBean(SomeClazz.class)); List objectList = (List) criteria.list(); 
  • Является ли LIKE-оператор чувствительным к регистру с сервером MSSQL?
  • Создайте дату с дневного месяца и года с помощью T-SQL
  • Есть ли какая-либо функция в oracle, аналогичная group_concat в mysql?
  • Когда использовать одиночные кавычки, двойные кавычки и обратные тики в MySQL
  • Код ошибки: 2013. Потерянное соединение с сервером MySQL во время запроса
  • Список «Поле» iCalendar (для схемы базы данных на основе стандарта iCalendar)
  • Как конкатенировать текст из нескольких строк в одну текстовую строку на SQL-сервере?
  • Можно ли использовать SQL для построения таблицы данных Excel из других файлов Excel?
  • Excel VBA: запись в базу данных mysql
  • Использование Excel VBA для запуска SQL-запроса
  • Соединение CodeIgniter MSSQL
  • Interesting Posts

    Почему scanf дважды запрашивает ввод, когда в конце строки формата есть новая строка?

    Android Динамически загружает Listview в конец прокрутки?

    Совместимость процессоров и материнские платы

    Передача JSONObject в другое действие

    Не получать уведомления о тостах. Как устранить неполадки?

    Мастер установки узла node.js преждевременно закончился

    Буфер трубопровода для внешней команды в Vim

    Насколько большой может быть файл с отображением памяти?

    Могу ли я переформатировать мой раздел под Windows 8 без использования моего раздела Windows 7?

    Могу ли я использовать assert на устройствах Android?

    Почему VMWare Player всегда отображается «всегда сверху» других окон?

    Добавление jRadioButton в jTable

    Почему rand () всегда возвращает одно и то же значение?

    Программа только сработает как релиз сборки – как отлаживать?

    UIScrollView не прокручивается после обновления до iOS7 / xcode 5

    Давайте будем гением компьютера.