mybatis更新操作中,如果有要更新为null的字段,调用up

2020-08-05  本文已影响0人  cmeizu
{
  "age": 30,
  "id": 9,
  "name": null,
  "sex": "M"
}

更新代码

 //第一种调用更新方法
User user = new User();
BeanUtils.copyProperties(userDTO, user);
return userMapper.updateById(user);

执行后的结果


image.png

另一种更新的方式.


        UpdateWrapper<User> uw = new UpdateWrapper<>();
        uw.lambda()
                .set(User::getAge, userDTO.getAge())
                .set(User::getName, userDTO.getName())
//这个很重要,是where条件,否则一张表就毁了.
                .eq(User::getId, userDTO.getId());
        return userMapper.update(null, uw);

再次执行查看结果

image.png

就能更新为null了.
另一种是在实体类上加上注解,不过不建议.

 /**
     * 用户姓名
     */
    @TableField(value = "name",updateStrategy = FieldStrategy.IGNORED)
    private String name;

这样用第一种方法也是可以的.前提都是这个字段可以为null.


image.png
上一篇 下一篇

猜你喜欢

热点阅读