java Mybatis-plus更新某个字段为null

本文介绍了在不使用@TableField(updateStrategy=FieldStrategy.IGNORED)注解的情况下,如何利用MyBatis Plus的LambdaUpdateWrapper进行条件更新和批量更新操作。示例中展示了更新单个实体字段以及通过in操作符批量更新多个记录的场景,适用于Java后端开发人员优化数据操作的场景。
摘要由CSDN通过智能技术生成

在不加注解@TableField(updateStrategy = FieldStrategy.IGNORED)的情况下(因为@TableField(updateStrategy = FieldStrategy.IGNORED)注解会踩坑),

用Wrappers.lambdaUpdate()更新:

LambdaUpdateWrapper<Entrust> lambdaUpdateWrapper = Wrappers.lambdaUpdate();
        lambdaUpdateWrapper.eq(Entrust::getWtId, wtId);
        lambdaUpdateWrapper.set(Entrust::getStatus, EntrustConstant.YWT_STATUS_1);
        lambdaUpdateWrapper.set(Entrust::getWtStatus, null);
        entrustService.update(null, lambdaUpdateWrapper);

如果想批量更新:

// 更新下面的预委托样品编号都为空
        List<Sample> sampleList = sampleService.lambdaQuery().eq(Sample::getWtId, wtId).list();
        List<Integer> sampleIds = new ArrayList<>(6);
        // 一个委托单下最多四个样品
        for (Sample sample : sampleList) {
            sampleIds.add(sample.getSampleId());
        }
        LambdaUpdateWrapper<Sample> updateWrapper = new UpdateWrapper<Sample>().lambda()
                .set(Sample::getPreSampleNo, null)
                .in(Sample::getSampleId, sampleIds);
        sampleService.update(null, updateWrapper);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值