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; }
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的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 關於Mybatis-Plus Update更新策略問題
- 解決mybatisPlus 中的field-strategy配置失效問題
- Mybatis-Plus中update()和updateById()將字段更新為null
- Mybatis-plus使用註解 @TableField(exist = false)
- 解決mybatisPlus null 值更新的問題