问题描述:
在代码中通过Mybatis-Plus对一个字段修改为null,发现并没有起作用
原因分析:
经过查询是因为Mybatis-Plus默认的更新策略设置的问题,Mybatis-Plus中FieldStrategy有三种策略:
ALWAYS:忽略。不管有没有有设置属性,所有的字段都会设置到insert语句中,如果没设置值会更新为null;
NOT_NULL:非 NULL,默认策略。也就是忽略null的字段,不忽略"";
NOT_EMPTY:非空。为null,为空串的忽略,就是如果设置值为null,“”,不会插入数据库;
NEVER:永远不会更新
默认的是NOT_NULL
,也就是忽略null字段,所以更新不成功。
解决办法:
1.使用sql语句
2.使用注解(推荐)
Mybatis-Plus 版本3.1.2及以上,根据具体情况,在需要更新的字段中调整验证注解,如验证非空:
其中:FieldStrategy.IGNORED 方法已过时,可以使用ALWAYS