背景:
最近将框架的mybits换为mybits-plus,然后在调用updateById时候,想让某个字段修改null,一直失败
问题:
mybits-plus调用updateById时候,想让某个字段修改null,一直失败
问题原因:
mybatis-plus会将所有为空的字段在修改时进行过滤,不进行为空的修改操作
修改方案:
方案1:
修改MyBatis-Plus 全局默认策略
mybatis-plus:
global-config:
#字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
field-strategy: 0
缺点:
这样做会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null
方案2:
修改实体类注解,改变字段的忽略判断
@TableField( updateStrategy = FieldStrategy.IGNORED)
private Date useTime;
缺点:
需要注意数据库字段是否设置为 非null ,如果为非null 也更新不成功
备注:
官网截图如下: