首页
App
&
Coffee
文档
项目
分享
反馈
俱乐部
登录
注册
关于update实体中某属性为null
SwainHo
2018-05-17 10:27
今天做了个excel导入
发现当某个实体里面属性为null,在update的时候会把原有数据的对应类替换成空
有没有筛选只更新非空字段的方法,还是需要重写一个
项目:
JFinal
1
1
评论区
lyh061619
2018-05-17 10:51
你update不都这样的么,那么你想解救它,就做下判断的呢,也就是传过来字段值为null时就不用set进去就好了,这样就不会覆盖到你已存在的表字段值了,非空则就修改。
回复
SwainHo
2018-05-17 10:59
@lyh061619
导入的时候直接传的实体类.本来想着看看有没有部分更新的方法,我重写了个updateNotNull方法剔除空属性...
回复
lyh061619
2018-05-17 11:01
@SwainHo
孺子可教也。
回复
JFinal
2018-05-17 11:07
@SwainHo
jfinal 默认的行为就是只更新你 set 过的字段,model 里头的 modifyFlag 就是干这个事情的
出现这样情况,必定是你 model.set(attrName, null) 这样赋了 null 值进去了,这个本质就是明确指定让 attrName 更新为 null
所以,通常不需要做任何事情就可以了。 如果你一定要 set(attrName, null) 或者 setAttrName(null) ,然后还要希望不要更新 attrName 这个字段为 null,可以任选下面几个方法:
1:model.removeNullValueAttrs().update();
2:model.remove(attrName).update();
你甚至可以用 model.keep(f1, f2, f3) 这样指定只保留 f1、f2、f3 字段,其它全部都不更新
回复
发送
我要反馈
热门反馈
扫码入社