Hibernate 在映射中返回结果的休眠条件
我有一个用户表,如何在Hibernate中创建一个Hibernate 在映射中返回结果的休眠条件,hibernate,Hibernate,我有一个用户表,如何在Hibernate中创建一个条件,返回一个以用户ID为键、用户对象为值的映射?我认为这是不可能的,因为查询总是返回一个列表:() 或在特殊情况下为单个元素 没有任何方法可以返回映射 因此,如果没有诸如覆盖会话以创建特殊条件(该条件还具有map()方法)之类的黑客攻击,您将无法完成所需的操作 只需返回一个列表并将其转换为地图。使用谷歌番石榴 ImmutableMap<Long, User> immutableMap = Maps.<Long, User>
条件
,返回一个以用户ID为键、用户对象为值的映射?我认为这是不可能的,因为查询总是返回一个列表:()
或在特殊情况下为单个元素
没有任何方法可以返回映射
因此,如果没有诸如覆盖会话以创建特殊条件(该条件还具有map()方法)之类的黑客攻击,您将无法完成所需的操作
只需返回一个列表并将其转换为地图。使用谷歌番石榴
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();
}
});
ImmutableMap ImmutableMap=Maps.uniqueIndex(hibernateSession.createCriteria(User.class.list()),
新函数(){
公共长应用(用户输入){
返回input.getId();
}
});
您可以使用HQL,它具有
新地图
以地图的形式返回所需的数据。如果您可以使用此功能,那么我很高兴与您分享有关如何使用此功能的更多详细信息。知道此功能非常棒!但我在寻找一个不使用其他库的解决方案。我知道你的意思。我用番石榴来装东西,所以它不会增加额外的依赖性。好吧,tbh,不管怎样,它都会走这条路。因为要么hibernate返回地图,要么转换为地图。一旦你集中了地图转换,就没有什么大的差别了。