2012-05-16 55 views
2

我有一個pojo具有字段的人:id/name/age/gender。HQL |作爲一個結果得到一張地圖

我希望得到一個從HQL以Person.id作爲鍵和Person對象作爲值返回的映射。 HQL應該是什麼樣子?

我已經試過這樣:

select new map(p.id,new Person(p.name,p.age,p.gender)) from Person 

這是獲得所需結果的正確方法是什麼? 我想避免使用基於java的操作來從接收結果中準備地圖。

回答

0

不,它不是。對於構造函數每行執行select new ...,每行獲得一個實例,query.list()爲您提供這些實例的列表。

您必須編寫用於讀取列表的每一行並將其放入地圖的java代碼。這只是幾行代碼。 (或者您也可以用它接受一個I​​D列和一個列表作爲參數的構造函數自己的地圖實現,而你做的操作有,但可能更復雜。)

2

使用此HQL:

select new map(p.id, p) from Person p