mybatisPlus 在使用其封装的方法进行更新实体类时,默认是不会去更新null字段的(会更新空字符串"")。然后我们的业务场景中经常会遇到需要更新null的情况,例如日期赋值为null,下面是处理方法:
mybatis-plus FieldStrategy 有三种策略:
IGNORED:0 忽略
NOT_NULL:1 非 NULL,默认策略
NOT_EMPTY:2 非空
解决方案一
1.实体的字段注解添加属性:strategy,但会在查询的时候也会拼接上null:
birthday = null
//在该字段上加上注解 strategy = FieldStrategy.IGNORED 即可
/**
* 生日
*/
@TableField(value = "BIRTHDAY",strategy = FieldStrategy.IGNORED)
private Date birthday;
2.updateStrategy,只针对更新
@TableField(updateStrategy=FieldStrategy.IGNORED)
3.selectStrategy(since 3.1.2)只针对查询
@TableField(selectStrategy=FieldStrategy.IGNORED)
解决方案二
使用UpdateWrapper更新,使用UpdateWrapper方式替换updateById