使用dao.findBySql查询一个字段时报错:java.math.BigDecimal cannot be cast to [Ljava.lang.Object
Dao dao=getDao(getDataSourceMapping);
String sql="select famount from t_product where fcode=? and fdeleted=?";
List<Object> paramList=new ArrayList<Object>();
paramList.add("waterMelon");
paramList.add(0);
List<Object[]> resultList=dao.findBySql(sql,paramList.toArray());
乍一看代码逻辑没问题,但是执行却报错:java.math.BigDecimal cannot be cast to [Ljava.lang.Object,原因是查询到的一个字段不被认为是一个list结果,至于内核的原因,暂时不太清楚,目前解决方法,要么增加一个查询字段,如fid,然后遍历结合的时候只获取第二个元素.
如果有更好的方案或者知道这个问题的症结所在,欢迎留言或评论.感谢各位大牛阅读与赐教!
博客讨论了一段Java代码在使用DAO进行SQL查询时遇到的问题,当试图将查询结果转换为Object数组时抛出了`java.math.BigDecimalcannotbecastto[Ljava.lang.Object`异常。问题可能源于查询返回的字段类型与预期不符。解决方案包括添加额外的查询字段以便正确解析结果,或者在转换时更精确地指定目标类型。作者邀请读者分享更好的解决办法或提供问题的内因解释。
1万+

被折叠的 条评论
为什么被折叠?



