美文网首页MyBatis(Plus)
MyBatis Plus之NULL值更新(二)

MyBatis Plus之NULL值更新(二)

作者: 静美书斋 | 来源:发表于2019-07-10 17:22 被阅读0次

    环境

    • 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值更新(忽略判断规则)。


    文章参考

    相关文章

      网友评论

        本文标题:MyBatis Plus之NULL值更新(二)

        本文链接:https://www.haomeiwen.com/subject/tzxkkctx.html