mybatis-plus 更新字段为null

mybatis-plus中的updateById 方法,正常情况下,如果设置字段为null,由于默认的字段策略,不会操作此字段,不会变为null值,那应该怎么做的?

第一种: 不推荐
上面我说了,默认的字段策略会忽略掉,所以我们可以将要设置为null 的字段的策略更改下.例如;

@TableField(strategy = FieldStrategy.IGNORED)
private LocalDateTime offlineTime;

这样再次调用updateById,就ok了
由于做了这个更改,可能后续会有其他人误操作此表的时候,真的将这个字段不知情的情况下置为了null,可能造成严重事故!!!

第二种: 推荐方式
这种也相对简单,就是用mybatis-plus自带的updatewrapper

LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
     updateWrapper.set(User::getOfflineTime,null);
     updateWrapper.set(User::getContent,null);
     updateWrapper.eq(User::getId,article.getId());
    userMapper.update(user, updateWrapper);

利用自带的update方法即可,这样就能实现字段变为null了!!

你可能感兴趣的:(Mybatis,MP,mybatis,java,spring,mysql,开发语言)