我有一个用户表,如何Criteria
在 Hibernate 中创建一个以 UserId 作为键并以 User 对象作为值的 Map 的创建方法?
问问题
4455 次
3 回答
1
我不认为这是可能的,因为查询总是返回一个列表:http ://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/Criteria.html#list () 或特殊单个元素的情况。
没有可以返回地图的方法。
因此,如果没有像覆盖 Session 来创建一个特殊的 Criteria 那样的技巧,它也有一个 map() 方法,你就不能做你想做的事。
只需返回一个列表并将其转换为地图。
于 2012-09-19T18:23:21.640 回答
0
使用谷歌番石榴
ImmutableMap<Long, User> immutableMap = Maps.<Long, User>uniqueIndex(hibernateSession.createCriteria(User.class).list(),
new Function<User, Long>() {
public Long apply(User input) {
return input.getId();
}
});
于 2012-09-19T18:28:56.473 回答
0
您可以使用 HQL ,它必须
new map
以地图的形式返回所需的数据。如果您可以使用它,那么我很乐意分享有关如何执行此操作的更多详细信息。
于 2020-01-22T11:40:22.117 回答