Browse Source

Merge pull request #4191 from nieqiurong/202112281718

重载removeBatchByIds方法.
miemieYaho 3 years ago
parent
commit
247dd1c386

+ 13 - 2
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java

@@ -180,6 +180,18 @@ public interface IService<T> {
         return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));
     }
 
+    /**
+     * 批量删除(jdbc批量提交)
+     *
+     * @param list 主键ID或实体列表(主键ID类型必须与实体类型字段保持一致)
+     * @return 删除结果
+     * @since 3.5.0
+     */
+    @Transactional(rollbackFor = Exception.class)
+    default boolean removeBatchByIds(Collection<?> list) {
+        return removeBatchByIds(list, DEFAULT_BATCH_SIZE);
+    }
+
     /**
      * 批量删除(jdbc批量提交)
      *
@@ -201,9 +213,8 @@ public interface IService<T> {
      * @return 删除结果
      * @since 3.5.0
      */
-    @Transactional(rollbackFor = Exception.class)
     default boolean removeBatchByIds(Collection<?> list, int batchSize) {
-        return removeBatchByIds(list, batchSize, false);
+        throw new UnsupportedOperationException("不支持的方法!");
     }
 
     /**

+ 7 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/impl/ServiceImpl.java

@@ -288,6 +288,13 @@ public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
         return SqlHelper.retBool(getBaseMapper().deleteById(id));
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean removeBatchByIds(Collection<?> list, int batchSize) {
+        TableInfo tableInfo = TableInfoHelper.getTableInfo(entityClass);
+        return removeBatchByIds(list, batchSize, tableInfo.isWithLogicDelete() && tableInfo.isWithUpdateFill());
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean removeBatchByIds(Collection<?> list, int batchSize, boolean useFill) {

+ 6 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -561,12 +561,18 @@ class H2UserTest extends BaseTest {
     @Test
     void testDeleteByFill() {
         H2User h2User = new H2User(3L, "test");
+        userService.removeById(1L);
         userService.removeById(1L, true);
         userService.removeById(1L, false);
+        userService.removeById(h2User);
         userService.removeById(h2User, true);
         userService.removeById(h2User, false);
+        userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User));
+        userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User),2);
         userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User), true);
         userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User), false);
+        userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User),2,true);
+        userService.removeBatchByIds(Arrays.asList(1L, 2L, h2User),2,false);
     }
 
 }