jfinal record 转实体 遇到java.lang.Integer cannot be cast to java.math.BigDecimal

String s ="{\"SITECLASS\":213}";
TbOperatelog tbOperatelog =new TbOperatelog();Map map = JSONObject.parseObject(s);Record record =new Record();record.setColumns(map);
tbOperatelog.put(record);

System.out.println(tbOperatelog.getSiteclass());

TbOperatelog 中SITECLASS字段是BigDecimal类型,如果这样转的话会报 java.lang.Integer cannot be cast to java.math.BigDecimal

TbOperatelog 是自动生成的,oracle中int会自动转为BigDecimal。

各位大神有解决办法吗


评论区

杜福忠

2018-05-25 09:08

为什么不直接转了 ?
TbOperatelog tbOperatelog
= JSONObject.parseObject(s, TbOperatelog.class);

hemiyang

2018-05-25 11:16

@杜福忠 解析不了,因为TbOperatelog自动生成的实体类,它里面是空的,继承了Model,parseObject无法解析到父类

杜福忠

2018-05-25 21:23

@hemiyang 是这个梗... 那你先了解一下 JFinal 3.4 demo for maven里面的 _JFinalDemoGenerator的base model生成器

热门反馈

扫码入社