一尘不染

使用Hibernate,如何查询表并返回键值对id> name的hashmap?

hibernate

我有这张桌子:

table name : Account
Fields : id (varchar), name(varchar), other fields...

我想使用hibernate机制查询该表(以使用第二个缓存级别)。hibernate查询的结果必须是一个哈希映射,其中键是字段ID,值是字段名称。

我如何用HQL编写它?

如果使用map,则只能使用别名,并且如果对对象使用构造函数,则必须将结果转换为hashmap,这非常耗时。

Example : 
Id | name | other fields
1 Jerome ...
2 Steve ...
3 Nick ...

查询的结果必须是hashmap:

1>Jerome
2>Steve
3>Nick

谢谢


阅读 300

收藏
2020-06-20

共1个答案

一尘不染

这个问题很老,但这可能仍然可以帮助其他人。现在,您可以使用HQL返回带有hibernate状态的地图。使用这样的东西:

select new map( max(bodyWeight) as max, min(bodyWeight) as min, count(*) as n ) from Cat cat

从hibernate文档中:http :
//docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-
select

2020-06-20