MyBatis-Plus updateById方法更新不了空字符串null解决方法

1 问题描述

在用mybatis-plus封装的updateById方法来更新数据时,想把一个字段设置为null值,但是发现更新后数据没有为null还是原来的值,这是因为mybatis-plus在更新的时候做了null判断,默认不更新为null的传参。

2 解决方法

(1)在实体类对应的字段上加注解@TableField(strategy=FieldStrategy.IGNORED),忽略null值的判断,例如

/**
 * 治愈时间
 */
@TableField(updateStrategy = FieldStrategy.IGNORED)
private LocalDate cureData;

(2)使用update方法显式的设置允许空数据的字段值(推荐

@Override
public void save(DrugRegisterBo drugRegisterBo) {
    DrugRegisterBean drugRegisterBean = modelMapper.map(drugRegisterBo, DrugRegisterBean.class);
    if (drugRegisterBean.getId() == null) {
        drugRegisterMapper.insert(drugRegisterBean.setCreatetime(LocalDateTime.now()).setModifytime(LocalDateTime.now()));
    } else {
        drugRegisterMapper.update(drugRegisterBean, Wrappers.<DrugRegisterBean>lambdaUpdate()
                .eq(DrugRegisterBean::getId, drugRegisterBean.getId())
                .set(DrugRegisterBean::getProductDate, drugRegisterBean.getProductDate())
                .set(DrugRegisterBean::getValidDate, drugRegisterBean.getValidDate())
                .set(DrugRegisterBean::getSpecifications, drugRegisterBean.getSpecifications())
                .set(DrugRegisterBean::getUseMethod, drugRegisterBean.getUseMethod())
                .set(DrugRegisterBean::getContent, drugRegisterBean.getContent())
        );
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐州蔡徐坤

又要到饭了兄弟们

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值