MybagtisPlus默认方法update相关,默认是不更新NULL字段,但是有时候业务需要更新NULL字段,这个时候可以通过下面方法处理:

1、直接 mapper.xml 写 sql 脚本:

UPDATE tableName SET name=null WHERE id=1;

2、设置全局字段策略:

原因是MybatisPlus字段更新策略有三种,大家可以按需设置。

IGNORED:0 忽略

NOT_NULL:1 非 NULL,默认策略

NOT_EMPTY:2 非空

因为默认的更新策略是NOT_NULL;即通过接口更新,数据为NULL时将不更新到数据库中。

通过properties全局配置,如下:

mybatis-plus.global-config.db-config.field-strategy=ignored
 
#yml文件格式:
mybatis-plus:
  global-config:
    field-strategy: 0

field-strategy 设置为 0 即可。

但是这样做,很容易将数据更新为null。(不推荐此方法)

3、对需要更新null的字段单独设置FieldStrategy

@TableField(updateStrategy = FieldStrategy.IGNORED)
private String number;

此方法也不是最理想方法。(不推荐)

4、通过UpdateWrapper更新null值:(推荐

noticeService.lambdaUpdate().eq(BaseNotice::getId, id)
                .set(BaseNotice::getNoticeOrder, null).update();

 

 

 

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部