我正在使用Spring Boot 1.5,我想按其状态(四个状态)分组警报,从而在存储库中使用本机查询。当我运行该查询时,它给了我结果。但不适用于该服务。
使用控制台运行时得到的结果是:
https://drive.google.com/open?id=1eson3nEHAIEr-jdEgkC1-tw2acRsW728
服务是:
@Override
public List<DashboardAlertVO> countingStatus() {
return alertRepository.countStatus()
.stream()
.map(o -> new DashboardAlertVO(AlertStatus.fromValue((String) o[0]),
((Integer) o[1])))
.collect(Collectors.toList());
}
所以我得到这个错误:
"message": "java.math.BigInteger cannot be cast to java.lang.Integer",
我不知道这段代码到底有什么关系。请帮忙 !非常感谢。
最佳答案
我们不能仅通过使用整数关键字将类型转换BigInteger转换为Integer。相反,您应该使用BigInteger类的内置方法intValue()来获取整数部分。
@Override
public List<DashboardAlertVO> countingStatus() {
return alertRepository.countStatus()
.stream()
.map(o -> new DashboardAlertVO(AlertStatus.fromValue((String) o[0]),
(o[1].intValue())))
.collect(Collectors.toList());
}