2

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

4

2 回答 2

3

使用此 HQL:

select new map(p.id, p ) from Person p
于 2013-10-12T09:43:48.297 回答
0

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

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

于 2012-05-16T10:14:16.980 回答