这篇文章主要介绍“mybatisPlus更新字段值为null怎么解决”,在日常操作中,相信很多人在mybatisPlus更新字段值为null怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatisPlus更新字段值为null怎么解决”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
问题描述
用Mybatis-Plus的update()或者updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。
TableField源码
package com.baomidou.mybatisplus.annotation;import org.apache.ibatis.mapping.ParameterMapping;import org.apache.ibatis.mapping.ResultMapping;import org.apache.ibatis.type.JdbcType;import org.apache.ibatis.type.TypeHandler;import org.apache.ibatis.type.UnknownTypeHandler;import java.lang.annotation.*;@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.FIELD, ElementType.ANNOTATION_TYPE})public @interface TableField { String value() default ""; boolean exist() default true; String condition() default ""; String update() default ""; FieldStrategy insertStrategy() default FieldStrategy.DEFAULT; FieldStrategy updateStrategy() default FieldStrategy.DEFAULT; FieldStrategy whereStrategy() default FieldStrategy.DEFAULT; FieldFill fill() default FieldFill.DEFAULT; boolean select() default true; boolean keepGlobalFormat() default false; JdbcType jdbcType() default JdbcType.UNDEFINED; Class<? extends TypeHandler> typeHandler() default UnknownTypeHandler.class; boolean javaType() default false; String numericScale() default "";}
FieldStrategy 源码
更新策略默认是不为Null
package com.baomidou.mybatisplus.annotation;public enum FieldStrategy { IGNORED, NOT_NULL, NOT_EMPTY, DEFAULT, NEVER}
设置为null的方案
使用UpdateWrapper更新
userService.lambdaUpdate() .eq(User::getId, user.getId()) .set(User::getUserName, user.getUserName()) .set(User::getNickName, null) .update();
设置全局的field-strategy(不推荐)
mybatis-plus: global-config: # 字段策略 0:忽略判断,直接拼SQL, 1:非NULL, 2:非空,3:默认;4:永远不加入SQL field-strategy: 0
设置某个字段的field-strategy
在实体的某个字段上设置
@ApiModelProperty(value = "所在党组织") @TableField(updateStrategy = FieldStrategy.IGNORED) private Long partyOrgId;
更新时直接将值设置为null
staffInfo.setPartyOrgId(null)
到此,关于“mybatisPlus更新字段值为null怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!