我有一个消息表,其中包含ID
,FROM_ID
,TO_ID
,DATE
和MESSAGE
列,其中包含常用的实体bean定义。我正在尝试编写一个查询,其中给定一个收件人(又名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这样做?
答案 0 :(得分:1)
在构造函数调用中包装选定的列:
select new WrapperBean(m.id, m.fromId, m.toId, m.message, max(m.sharedDate))...
其中WrapperBean有一个带有这些args的构造函数。