当前使用版本(必须填写清楚,否则不予处理)

3.3.0


将来是否可以加一个 updateBatchByXXX (唯一索引) 初期手写批量更新真的是一个很大的痛点, 写出来的代码都不能看 /扶额 后来想直接在 Service 中自己添加个方法, 然后按照 updateBatchById 仿了一个, 感觉干净多了, 但是还是做不到通用

    public void updateBatchByTagId(Collection<TagSelfLogDO> entityList, int batchSize) {
        Assert.notEmpty(entityList, "error: entityList must not be empty");
        String sqlStatement = sqlStatement(SqlMethod.UPDATE);
        try (SqlSession batchSqlSession = sqlSessionBatch()) {
            int i = 0;
            for (TagSelfLogDO anEntityList : entityList) {
                MapperMethod.ParamMap<Object> param = new MapperMethod.ParamMap<>();
                param.put(Constants.WRAPPER, new LambdaUpdateWrapper<TagSelfLogDO>()
                        .eq(TagSelfLogDO::getTagId, anEntityList.getTagId()));
                anEntityList.setTagId(null);
                param.put(Constants.ENTITY, anEntityList);
                batchSqlSession.update(sqlStatement, param);
                if (i >= 1 && i % batchSize == 0) {
                    batchSqlSession.flushStatements();
                }
                i++;
            }
            batchSqlSession.flushStatements();
        }
    }

希望理想情况下的方法会是: updateBatchByXXX(Collection collection, int batchSize, SFunction column);

Comment From: miemieYaho

做不了