HQL |获得地图作为结果

时间:2012-05-16 03:47:49

标签: hibernate map

我有一个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的操作来准备接收结果中的地图。

2 个答案:

答案 0 :(得分:3)

使用此HQL:

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

答案 1 :(得分:0)

不,不是。对于构造函数执行的每一行select new ...,每行获得一个实例,query.list()为您提供这些实例的列表。

你必须编写java代码来读取列表的每一行并将其放入地图中。这只是几行代码。 (或者您使用构造函数编写自己的地图实现,该构造函数接受id列和列表作为参数,然后在那里进行操作,但这可能更复杂。)