瀏覽代碼

新增一个消费函数method,主要为了方便保持wrapper的链式调用

miemie 5 年之前
父節點
當前提交
44f5ac287a

+ 6 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -298,6 +298,12 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
         return doIt(condition, HAVING, () -> formatSqlIfNeed(condition, sqlHaving, params));
     }
 
+    @Override
+    public Children func(Consumer<Children> consumer) {
+        consumer.accept(typedThis);
+        return typedThis;
+    }
+
     /**
      * 内部自用
      * <p>NOT 关键词</p>

+ 9 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/interfaces/Func.java

@@ -19,6 +19,7 @@ import java.io.Serializable;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Optional;
+import java.util.function.Consumer;
 
 import static java.util.stream.Collectors.toList;
 
@@ -292,4 +293,12 @@ public interface Func<Children, R> extends Serializable {
      * @return children
      */
     Children having(boolean condition, String sqlHaving, Object... params);
+
+    /**
+     * 消费函数
+     *
+     * @param consumer 消费函数
+     * @return children
+     */
+    Children func(Consumer<Children> consumer);
 }

+ 6 - 0
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/AbstractChainWrapper.java

@@ -211,6 +211,12 @@ public abstract class AbstractChainWrapper<T, R, Children extends AbstractChainW
         return typedThis;
     }
 
+    @Override
+    public Children func(Consumer<Children> consumer) {
+        getWrapper().func(consumer);
+        return typedThis;
+    }
+
     @Override
     public Children or(boolean condition) {
         getWrapper().or(condition);