mybatis?plus更新字段為null處理方法
mybatis plus 將字段更新為 null,默認如果不做任何處理,使用 mybatis plus 自帶的更新方法是不能將字段更新為 null 的,如果要將字段更新為 null,需要做下面的處理
在需要的字段上加 @TableField 注解,并設置屬性
updateStrategy = FieldStrategy.IGNORED
測試代碼如下
數(shù)據(jù)庫表

實體類
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;
}mapper
package com.sbmp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sbmp.bean.Userinfo;
public interface UserinfoMapper extends BaseMapper<Userinfo>{
}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)
修改后的代碼如下
package com.sbmp.bean;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
@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處理方法的詳細內容,更多關于mybatis plus更新字段為null的資料請關注腳本之家其它相關文章!
相關文章
簡單談談Struts動態(tài)表單(DynamicForm)
下面小編就為大家?guī)硪黄唵握務凷truts動態(tài)表單(DynamicForm)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

