什么意思?
简单来说就是对于传参过程中对于“ ”(就是空参数)的处理策略
举个例子,管理员在修改用户信息的时候,如果密码一栏为空,如果mybatisPlus采用默认的字段策略,也就会下下面这个
NOT_NULL |
进行非NULL判断,也是默认策略,相当于age!=null |
那么, 后端数据库该用户的密码一栏也会为空,也就是相当于将该用户的密码置空了。
解决方法也就是修改在spring boot中可以通过配置属性修改全局字段策略:分别对应-更新-插入-任意位置,按需求添加任意一个配置即可
mybatis-plus.global-config.db-config.update-strategy=not_null
mybatis-plus.global-config.db-config.insert-strategy=not_null
mybatis-plus.global-config.db-config.where-strategy=not_null
1、FieldStrategy作用
Mybatis-Plus字段策略FieldStrategy的作用主要是在进行新增、更新时,根据配置的策略判断是否对实体对象的值进行空值判断,如果策略为字段不能为空,则不会对为空的字段进行赋值或更新。
同样,在进行where条件查询时,根据whereStrategy策略判断是否对字段进行空值判断,如果策略为字段不能为空,则为空的字段不会作为查询条件组装到where条件中。
三个配置,对应三种使用场景
insertStrategy
在insert操作时的字段策略,是否进行空值判断,插入空值updateStrategy
在update操作时的字段策略,是否进行空值判断,插入空值whereStrategy
在where条件组装时,是否进行控制判断,将空值作为查询条件
2、FieldStrategy类型
FieldStrategy的源码中,一共有5种策略类型。
public enum FieldStrategy {IGNORED
,NOT_NULL
,NOT_EMPTY
,DEFAULT
,NEVER
;private FieldStrategy(){ } }
每种策略的作用:
值 |
描述 |
IGNORED |
忽略空值判断,实体对象的字段是什么值就用什么值更新,支持null值更新操作 |
NOT_NULL |
进行非NULL判断,也是默认策略,相当于age!=null |
NOT_EMPTY |
进行非空判断,主要是针对字符串类型,相当于name != null and name != ‘’ |
NEVER |
从不更新,不管字段是否有值,都不进行更新 |
DEFAULT |
追随全局配置 |
在spring boot中可以通过配置属性修改全局字段策略:
mybatis-plus.global-config.db-config.update-strategy=not_null
mybatis-plus.global-config.db-config.insert-strategy=not_null
mybatis-plus.global-config.db-config.where-strategy=not_null