网站备案完毕 怎样建设网站,建设留学网站,网站建设做哪个科目,罗湖网站 建设深圳信科目录mybatisPlus中null值插入和更新问题实际项目解决方法示例一实际项目解决方法示例二field-strategy字段更新插入策略介绍枚举类FieldStrategy源码枚举类字段简介mybatisPlus中null值插入和更新问题
配置mybatisPlus的项目中#xff0c;默认进行了不是全量更新的策略#…
目录mybatisPlus中null值插入和更新问题实际项目解决方法示例一实际项目解决方法示例二field-strategy字段更新插入策略介绍枚举类FieldStrategy源码枚举类字段简介mybatisPlus中null值插入和更新问题
配置mybatisPlus的项目中默认进行了不是全量更新的策略NOT_NULL。 即在利用updateWrapper更新时会做null判断如果传参数为null就不会更新。 在实际项目需求中可能配置全局更新策略为NOT_NULL但是某些场景更新时需要插入这个null值进行更新。如何解决这个问题呢
实际项目解决方法示例一
实际项目中配置文件中配置全局字段策略为NOT_NULL。 需求实际项目中apply_teacher字段当它为null时需要把null值更新进去。 困难因为全局字段策略为NOT_NULL所以默认不会更新null值进去。 解决方法 利用条件构造器当值为null时set为null。 代码
WrapperStuApplyInfoEntity updateWrapper new UpdateWrapper();
((UpdateWrapper) updateWrapper).set(saveApply.getApplyTeacher() null, apply_teacher, null);实际项目解决方法示例二
需求state字段所有值都更新和插入。 困难因为全局字段策略为NOT_NULL所以默认不会更新null值进去。 解决方法 在entity中设置state设置注解TableField()配置FieldStrategy为IGNORED。意思是忽略判断所有值都更新和插入。 代码
TableField(strategy FieldStrategy.IGNORED, el state, jdbcTypeVARCHAR)
private String state;field-strategy字段更新插入策略介绍
枚举类FieldStrategy源码
public enum FieldStrategy {/*** 忽略判断*/IGNORED,/*** 非NULL判断*/NOT_NULL,/*** 非空判断*/NOT_EMPTY,/*** 默认的,一般只用于注解里* p1. 在全局里代表 NOT_NULL/p* p2. 在注解里代表 跟随全局/p*/DEFAULT
}枚举类字段简介
IGNORED“忽略判断”所有字段都更新和插入。 NOT_NULL“非 NULL 判断”只更新和插入非NULL值。 NOT_EMPTY“非空判断” 只更新和插入非NULL值且非空字符串。 DEFAULT 默认的一般只用于注解里。