mybatisPlus更新字段值为null
问题描述
用Mybatis-Plus的update()或者updateById()来更新数据时,无法将字段设置为null值(更新后数据还是原来的值)。
TableField源码
FieldStrategy 源码
更新策略默认是不为Null
设置为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)
下一篇:
基于ssm框架的社区管理系统