处理BigDecimal字段, java.math.BigDecimal cannot be cast to [Ljava.lang.Object;

来源:互联网 发布:金蝶数据对接 编辑:程序博客网 时间:2024/06/05 14:20

有时候写视图,里面有用到临时字段的。取出来后该字段类型为BigDecimal类型的。需要转换

我的 scoreindex为临时字段,下面这个sql语句在库里执行是没有错的。但在程序里会出错。

String sql = "select  scoreindex  from tb_person_view where uuid='"+uuid+"'";

因为这样查询出来的,java默认不是对象数组。

以下为正确代码

String sql = "select scoreindex,name from tb_person_view where uuid='"+uuid+"'";

Map<String, Object> params = new HashMap<String, Object>();
List<Object[]> objs = findBySql(sql, params, -1, -1);
List<CaseModel> cases = new ArrayList<CaseModel>();
CaseModel model = new CaseModel(); //必须在这里从新实例化一下对象
if(objs.size()>0){
Object[] obj;
obj = objs.get(0);
Integer ss = ((BigDecimal) obj[0]).intValue();//对BigDecimal类型的装换
model.setScoreIndex(ss);
cases.add(model);
}
return cases.get(0);