Przeglądaj źródła

!207 优化SqlHelper中executeBatch刷新条件的判断;
Merge pull request !207 from emptypoint/3.0

青苗 3 lat temu
rodzic
commit
58c193de99

+ 3 - 1
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/toolkit/SqlHelper.java

@@ -216,11 +216,13 @@ public final class SqlHelper {
         Assert.isFalse(batchSize < 1, "batchSize must not be less than one");
         return !CollectionUtils.isEmpty(list) && executeBatch(entityClass, log, sqlSession -> {
             int size = list.size();
+            int idxLimit = Math.min(batchSize, size);
             int i = 1;
             for (E element : list) {
                 consumer.accept(sqlSession, element);
-                if ((i % batchSize == 0) || i == size) {
+                if (i == idxLimit) {
                     sqlSession.flushStatements();
+                    idxLimit = Math.min(idxLimit + batchSize, size);
                 }
                 i++;
             }