Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个 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 的操作来根据收到的结果准备地图。
使用此 HQL:
select new map(p.id, p ) from Person p
不它不是。对于select new ...每一行,构造函数都会执行,每行有一个实例,query.list() 为您提供这些实例的列表。
select new ...
您必须编写 Java 代码来读取列表的每一行并将其放入地图中。这只是几行代码。(或者您使用接受 id 列和列表作为参数的构造函数编写自己的地图实现,然后在那里进行操作,但这可能更复杂。)