Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 在映射中返回结果的休眠条件_Hibernate - Fatal编程技术网

Hibernate 在映射中返回结果的休眠条件

Hibernate 在映射中返回结果的休眠条件,hibernate,Hibernate,我有一个用户表,如何在Hibernate中创建一个条件,返回一个以用户ID为键、用户对象为值的映射?我认为这是不可能的,因为查询总是返回一个列表:() 或在特殊情况下为单个元素 没有任何方法可以返回映射 因此,如果没有诸如覆盖会话以创建特殊条件(该条件还具有map()方法)之类的黑客攻击,您将无法完成所需的操作 只需返回一个列表并将其转换为地图。使用谷歌番石榴 ImmutableMap<Long, User> immutableMap = Maps.<Long, User>

我有一个用户表,如何在Hibernate中创建一个
条件
,返回一个以用户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返回地图,要么转换为地图。一旦你集中了地图转换,就没有什么大的差别了。