MyBatis(Plus)

MyBatis Plus之NULL值更新(一)

2019-07-10  本文已影响0人  静美书斋

环境

  • mybatis-plus-3.1.0

一、场景详述

  数据库中有字段#A为字符串设计,默认可以为NULL,该字段有内容,当更新该条目时,前端传过来的字段中并未包含该字段#A,此时去更新数据库的时候,该字段其实默认为NULL。MyBatis-Plus默认配置策略是:当更新数据库值时,传过来的字段为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、更改MyBatis-Plus策略为忽略判断

field-strategy: ignored

  但是,如果数据库中设计有创建的时间戳或者创建人时,我们一般在更新的时候,默认不予赋值,即使为NULL时也不更新,就需要在该类字段上添加如下注解

/**
 * 创建人
 */
@TableField(strategy = FieldStrategy.NOT_NULL)
public Long createdBy;
/**
 * 创建时间
 */
@TableField(strategy = FieldStrategy.NOT_NULL)
public String createdAt;

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


文章参考

上一篇 下一篇

猜你喜欢

热点阅读