Model之间怎么复制属性

我有一个数据库里的表字段是数值型,通过getModel从前端接收到数据是Double类型,从数据库里查询出来的Model是BigDecimal类型,这两个之间怎么做转换?用BeanUtils.copyProperties报错,类型不能转换

评论区

张小朵

2019-10-14 17:07

数据库是oracle,字段类型是number

JFinal

2019-10-14 17:17

先用生成器生成getter setter 方法,然后 getModel 改用 getBean 看看结果,生成器可以在首页下载 jfinal_demo_for_maven.zip,里头有使用示例

其实 getModel 也是可以的,单步调试找找原因

张小朵

2019-10-14 18:55

@JFinal getter setter是用生成器生成的,用getBean会丢失字段,因为前端的参数命名是按照数据库来的,不是驼峰式命名,getBean匹配不上,只能用getModel,但是它转换出来的类型跟Db查出来的不一致

张小朵

2019-10-14 18:58

@JFinal 看了JDBC的文档,Oracle的number对应JAVA多种类型,不知道JFinal是怎么决定用哪个类型的?主要不同类型在copyProperties中不支持,直接save是没问题的

JFinal

2019-10-14 19:23

@张小朵 用生成器生成以后, 表单域就要调整为驼峰式命名了

oracle 的 number 对应哪种 java 类型,jfinal 并未干预,jfinal 是利用的 JDBC 对其类型进行获取,获取出来是什么就直接沿用了这个类型

你需要的功能,考虑做个工具类实现一下, Model 中有各种 get 方法,可以用一用 getNumber 方法先获取到任意数据值类型的父类,再进行下一步 copy 操作

马小酱

2019-10-15 10:09

前台表单你不用驼峰那你还纠结什么呢,赶紧改啊

热门反馈

扫码入社