我有一個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的操作來從接收結果中準備地圖。
我有一個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的操作來從接收結果中準備地圖。
不,它不是。對於構造函數每行執行select new ...
,每行獲得一個實例,query.list()爲您提供這些實例的列表。
您必須編寫用於讀取列表的每一行並將其放入地圖的java代碼。這只是幾行代碼。 (或者您也可以用它接受一個ID列和一個列表作爲參數的構造函數自己的地圖實現,而你做的操作有,但可能更復雜。)
使用此HQL:
select new map(p.id, p) from Person p