0
我有一個消息列表,其中列出了我的列ID
,FROM_ID
,TO_ID
,DATE
和MESSAGE
,並定義了常用的實體bean。我試圖寫一個查詢,在給定的收件人(又名TO_ID
)返回來自每個用戶的最新消息(即對於每個唯一的FROM_ID
,返回記錄的最大DATE
)。如何在HQL中使用GROUP BY時返回對象?
我想出了查詢:
SELECT
m.id, m.fromId, m.toId, m.message, max(m.sharedDate),
FROM
Messages m
WHERE
m.toId = ?
GROUP BY
m.fromId
現在,我可以把這些列背部和填充他們豆,但有沒有辦法有休眠辦呢?
嗯,問題是,在我的真實情況下(即,而不是問題中提供的簡化版本)有兩個不同的類(共享一個基類)持久化到該表,結果可能是 – ArtB 2012-03-14 20:11:34
可能有一些簡單的方法來做到這一點,但手動技術將包括鑑別器列(或其他一些會區分這些類型的值),並自己遍歷Object [],並創建正確的類型在那個價值上。 – dlgrasse 2012-03-14 20:23:03
有沒有辦法引用鑑別器列,如果它沒有映射到任何實體bean?顯然,存在:'特殊屬性類在多態持久性的情況下訪問實例的鑑別器值。嵌入在where子句中的Java類名將被轉換爲其鑑別符值.'如同'cat cat where Cat.class = DomesticCat' – ArtB 2012-03-14 20:37:03