Browse Source

removeByIds重载一个方法,可控制是否使用填充.

聂秋荣 3 years ago
parent
commit
d368df2dec

+ 19 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java

@@ -161,6 +161,25 @@ public interface IService<T> {
         return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));
     }
 
+    /**
+     * 批量删除
+     *
+     * @param list    主键ID或实体列表
+     * @param useFill 是否填充(为true的情况,会将入参转换实体进行delete删除)
+     * @return 删除结果
+     * @since 3.5.0
+     */
+    @Transactional(rollbackFor = Exception.class)
+    default boolean removeByIds(Collection<?> list, boolean useFill) {
+        if (CollectionUtils.isEmpty(list)) {
+            return false;
+        }
+        if (useFill) {
+            return removeBatchByIds(list, true);
+        }
+        return SqlHelper.retBool(getBaseMapper().deleteBatchIds(list));
+    }
+
     /**
      * 批量删除(jdbc批量提交)
      *

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

@@ -545,6 +545,7 @@ class H2UserTest extends BaseTest {
 //        userService.removeById("100000");
         userService.removeById(h2User);
         userService.removeByIds(Arrays.asList(10000L, h2User));
+        userService.removeByIds(Arrays.asList(10000L, h2User),false);
     }
 
     @Test