MyBatis Plus之NULL值更新(二)

环境

  • mybatis-plus-3.1.0

一、场景详述

  在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为NULL值,但是发现更新后数据没有为NULL,还是原来的值。这是因为mybatis-plus在更新的时候做了NULL判断,默认不更新为NULL的传参。
  想要实现的效果是:当前端传参为NULL时,仍然更新该字段。

二、配置分析

1、Mybatis-Plus配置的数据库更新策略如下

mybatis-plus:
  global-config:
    # 数据库相关配置
    db-config:
      #字段策略 IGNORED:"忽略判断",NOT_NULL:"非 NULL 判断"),NOT_EMPTY:"非空判断"
      field-strategy: not_null

配置的更新的策略为非NULL判断,所以,当我们想将数据库中的某个值设置为NULL时(该字段可为NULL),该策略就会忽略此操作。

2、添加注解实现NULL更新

  以下为即使为NULL时也更新,需要在该类字段上添加如下注解

/**
 * 创建人/处理人
 */
@TableField(strategy = FieldStrategy.IGNORED)
public Long createdBy;

总结:简言之,全局范围配置NULL值不更新(非NULL判断规则),局部可进行NULL值更新(忽略判断规则)。


文章参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。