Как вернуть объект при использовании GROUP BY в HQL? - PullRequest
0 голосов
/ 14 марта 2012

У меня есть таблица сообщений, где у меня есть столбцы ID, FROM_ID, TO_ID, DATE и MESSAGE, с определенным обычным компонентом. Я пытаюсь написать запрос, при котором получатель (aka TO_ID) возвращает самое последнее сообщение от каждого пользователя (т. Е. Для каждого уникального FROM_ID возвращает запись с наибольшим DATE).

Я пришел к следующему запросу:

SELECT                           
   m.id, m.fromId, m.toId, m.message, max(m.sharedDate),
FROM                             
   Messages m                       
WHERE                            
   m.toId = ?           
GROUP BY                         
   m.fromId    

Теперь я могу вернуть эти столбцы и заполнить ими bean-компонент, но есть ли способ заставить Hibernate сделать это?

1 Ответ

1 голос
/ 14 марта 2012

перенос выбранных столбцов в вызове конструктора:

select new WrapperBean(m.id, m.fromId, m.toId, m.message, max(m.sharedDate))...

, где у WrapperBean есть конструктор с этими аргументами.

...