我有一个pojo Person字段:id / name / age / gender。
我希望从HQL返回一个地图,其中Person.id为关键字,Person对象为值。 HQL应该是什么样的?
我试过这个:
select new map(p.id,new Person(p.name,p.age,p.gender)) from Person
这是获得所需结果的正确方法吗? 我想避免使用基于java的操作来准备接收结果中的地图。
答案 0 :(得分:3)
使用此HQL:
select new map(p.id, p ) from Person p
答案 1 :(得分:0)
不,不是。对于构造函数执行的每一行select new ...
,每行获得一个实例,query.list()为您提供这些实例的列表。
你必须编写java代码来读取列表的每一行并将其放入地图中。这只是几行代码。 (或者您使用构造函数编写自己的地图实现,该构造函数接受id列和列表作为参数,然后在那里进行操作,但这可能更复杂。)