2011-08-05 60 views
2

我正在經歷hibenate文檔,發現它可以通過使用代碼HQL返回地圖:在HQL返回地圖

select new map(max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n) 
from Cat cat 

但我無法理解當我執行查詢如何獲得地圖並使用別名來檢索每一列。

獲取結果的方法是query.iterate的query.list。 如果我需要獲得地圖結果以及如何使用別名從地圖中檢索每列,可以調用哪個函數。

感謝

回答

1

在這樣的情況下,我使用調試器來看看什麼是真正返回。在這種情況下,查詢不返回行,它只返回三個值:max,minn。所以你可以得到結果,並做類似於

resultMap.get("max"); 

因爲在hql中,你告訴hibernate將max的結果標記爲'max'。