浏览代码

change log

miemie 5 年之前
父节点
当前提交
db745442d3

+ 5 - 0
TEMP_CHANGELOG.md

@@ -0,0 +1,5 @@
+- 修复启用乐观锁下updateById时自动填充不生效的问题
+- 修复自动填充接口的default方法(`setFieldValByName`和`getFieldValByName`)某些情况下会发生异常的问题
+- `BaseMapper`部分入参为`Wrapper`的select方法支持`wrapper.first`来设置RDS的hint
+- `Wrapper`子类新增`func`方法,主要为了支持在`if else`情况下使用`Wrapper`的不同method不会导致断链(链式调用不能一链到底)
+- 新增支持hbase的选装件`Upsert`

+ 4 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -312,8 +312,10 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
     }
 
     @Override
-    public Children func(Consumer<Children> consumer) {
-        consumer.accept(typedThis);
+    public Children func(boolean condition, Consumer<Children> consumer) {
+        if (condition) {
+            consumer.accept(typedThis);
+        }
         return typedThis;
     }
 

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

@@ -294,11 +294,19 @@ public interface Func<Children, R> extends Serializable {
      */
     Children having(boolean condition, String sqlHaving, Object... params);
 
+    /**
+     * ignore
+     */
+    default Children func(Consumer<Children> consumer) {
+        return func(true, consumer);
+    }
+
     /**
      * 消费函数
      *
      * @param consumer 消费函数
      * @return children
+     * @since 3.3.1
      */
-    Children func(Consumer<Children> consumer);
+    Children func(boolean condition, Consumer<Children> consumer);
 }

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

@@ -107,6 +107,7 @@ public interface Join<Children> extends Serializable {
      * @param condition 执行条件
      * @param firstSql  起始语句
      * @return children
+     * @since 3.3.1
      */
     Children first(boolean condition, String firstSql);
 

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

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