如何从hibernate查询中获取java.util.Map?

WSK*_*WSK 6 java hibernate

我想知道从hibernate查询获取地图数组的最佳方法是什么.Google表示要迭代query.list(),并将对象创建/放入空地图数组中.
我想会有一些优雅而有效的方法来做到这一点.有人可以给我一些想法吗?

uı6*_*uɐp 5

请参阅Hibernate文档 - 15.6.select子句:

您可以使用as将别名分配给选定的表达式:

select max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n
from Cat cat
Run Code Online (Sandbox Code Playgroud)

当与选择新地图一起使用时,这非常有用:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n )
from Cat cat
Run Code Online (Sandbox Code Playgroud)

此查询将别名中的Map返回到选定值.

  • 如果你使用createQuery.list执行hql,它将只返回一个列表.列表的每个元素都是一个带有一个键和一个值的映射.所以它没有返回一张地图,它正在返回一张地图列表......我错过了什么...... (2认同)