今天遇到了一个问题,在更新数据时,MybatisPlus不会进行修改属性为空的数据表字段。
解决办法:
只需要在实体类的属性上加一行注释即可
/**
* 姓名
*/
@TableField(fill = FieldFill.UPDATE)
private String name;
这行注释的意思是:在name这个属性执行修改时,将自动填充一个值(默认为null),即将字段修改为空,而不是不做修改。
比较老的解决方式:
在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为null值,但是发现更新后数据没有为null还是原来的值,这是因为mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。
2 解决方法
在实体类对应的字段上加注解@TableField(strategy=FieldStrategy.IGNORED),忽略null值的判断,例如
@TableField(strategy = FieldStrategy.IGNORED)
private String name;
当@TableField注解有多个值时
@TableField(value = "user_name", strategy = FieldStrategy.IGNORED)
private String userName;