栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【无标题】使用mybatis-plus时调用updateById()方法更新数据库表时,个别字段更新不成功

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】使用mybatis-plus时调用updateById()方法更新数据库表时,个别字段更新不成功

1.表中的原数据

2.目标

在执行如下代码的时候,把数据库表其中的plan_exe_type字段的值由1变为0,plan_corn字段的值变为空串

3.结果

结果就是plan_exe_type字段的值改变了,但是plan_corn字段没变!!!!

太神奇了!然后我又debug看了几遍 ,发现明明其他字段能够修改成功,只有这个plan_corn字段在数据库里没有办法修改

4.发现

困扰了我好久,终于发现是因为项目中的yml文件中配置的mybatis-plus的更新策略的问题,yml配置文件中关于mybatis-plus的配置如下:

这句话是什么意思呢?

意思是,如果实体类上没有添加策略注解,在调用mybatis-plus自带的方法时,默认会对null字段加以判断。也就是说,如果传入的字段是null,mybatis-plus不会更新该字段的值。这是mybatis-plus的默认策略(默认对null传参的判断)。

而我传入的值正是null!!!所以就一直更新不了这个字段…

5.解决

解决方案就是在 在实体类对应的字段上加注解@TableField(updateStrategy=FieldStrategy.IGNORED),改变默认策略,忽略null值的判断,也就是说,我传入了null,你就将该字段更新成null。

这样就可以啦!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679146.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号