Spring中的aware接口详情
792
2022-08-27
mybatis plus更新字段为null处理方法
目录测试代码如下数据库表实体类mappercontroller运行测试运行测试
mybatis plus 将字段更新为 null,默认如果不做任何处理,使用 mybatishttp:// 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 BaseMapphttp://er
}
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
http://*/
@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的资料请关注我们其它相关文章!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~