当前使用版本(必须填写清楚,否则不予处理)
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
做不了