gpt4 book ai didi

java - 使用 HQL 时出现 ClassCastException

转载 作者:行者123 更新时间:2023-11-29 04:02:49 25 4
gpt4 key购买 nike

看下面的映射

public class SomeClass {

private Integer someField;

}

当我调用以下查询时

select someField, count(*) from SomeClass inner join OtherClass... group by ...

我按如下方式处理查询

Map<Integer, Integer> result = new HashMap<Integer, Integer>();

List<Object> objectList = query.list();
for(Object object: objectList) {
Object [] objectArray = (Object []) object;

result.put((Integer) objectArray[0], (Integer) objectArray[1]);
}

我得到 ClassCastException:无法将 Long 转换为 Integer

问题:我应该怎么做才能将 HQL 返回的值检索为 Integer 而不是 Long????

最佳答案

如果您不知道它是什么(IntegerLong),您可以转换为 Number 并调用 intValue()longValue()。这样 IntegerLong 就可以工作了。

result.put((Integer) objectArray[0], ((Number) objectArray[1]).intValue() );

这样做的小缺点是您最终需要拆箱数字并重新装箱以放入 map 中。

关于java - 使用 HQL 时出现 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318951/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com