在执行如下代码的时候,把数据库表其中的plan_exe_type字段的值由1变为0,plan_corn字段的值变为空串
结果就是plan_exe_type字段的值改变了,但是plan_corn字段没变!!!!
太神奇了!然后我又debug看了几遍 ,发现明明其他字段能够修改成功,只有这个plan_corn字段在数据库里没有办法修改
困扰了我好久,终于发现是因为项目中的yml文件中配置的mybatis-plus的更新策略的问题,yml配置文件中关于mybatis-plus的配置如下:
这句话是什么意思呢?
意思是,如果实体类上没有添加策略注解,在调用mybatis-plus自带的方法时,默认会对null字段加以判断。也就是说,如果传入的字段是null,mybatis-plus不会更新该字段的值。这是mybatis-plus的默认策略(默认对null传参的判断)。
而我传入的值正是null!!!所以就一直更新不了这个字段…
5.解决解决方案就是在 在实体类对应的字段上加注解@TableField(updateStrategy=FieldStrategy.IGNORED),改变默认策略,忽略null值的判断,也就是说,我传入了null,你就将该字段更新成null。
这样就可以啦!



