Mybatis-Plus 更新字段为 NULL
本篇内容主要讲解 mybatis plus
如何更新字段为 null
,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习 mybatis plus
如何更新字段为 null
吧!
mybatis plus
将字段更新为 null
,默认如果不做任何处理,使用 mybatis plus
自带的更新方法是不能将字段更新为 null
的,如果要将字段更新为 null
,需要做下面的处理
在需要的字段上加 @TableField
注解,并设置属性
updateStrategy = FieldStrategy.IGNORED
测试代码如下
实体类
package com.sbmp.bean;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@Data
public class Userinfo {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**|
* 姓名
*/
private String name;
/**
* 生日
*/
private LocalDate birthday;
}
controller
package com.sbmp.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.sbmp.bean.Userinfo;
import com.sbmp.mapper.UserinfoMapper;
@RestController
public class UserinfoController {
@Autowired
private UserinfoMapper userinfoMapper;
@RequestMapping("/info")
public String info() {
Userinfo info = new Userinfo();
info.setId(1);
info.setBirthday(null);
info.setName("薛宝钗");
userinfoMapper.updateById(info);
return "成功";
}
}
运行测试
看能不能将薛宝钗的生日更新为空
看打印的 sql 是没有birthday = null 的拼接的,这就是默认的情况
如果想拼接 birthday = null,需要在 birthday 字段上添加这个配置
@TableField(updateStrategy = FieldStrategy.IGNORED)
修改后的代码如下
@Data
public class Userinfo {
/**
* 主键id
*/
@TableId(type = IdType.AUTO)
private Integer id;
/**|
* 姓名
*/
private String name;
/**
* 生日
*/
@TableField(updateStrategy = FieldStrategy.IGNORED)
private LocalDate birthday;
}
运行测试
这次 birthday = null 成功更新
@TableField 部分属性说明
看官方文档 updateStrategy 处理更新的情况;同理,添加的时候使用 insertStrategy;
涉及where条件处理使用 whereStrategy
FieldStrategy 说明
原文链接
mybatis plus如何更新字段为null - 开发技术 - 亿速云 (yisu.com)
本作品采用《CC 协议》,转载必须注明作者和本文链接