miemie 6 лет назад
Родитель
Сommit
0169f4c208

+ 3 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/LambdaQueryWrapper.java

@@ -47,13 +47,13 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
     }
 
     public LambdaQueryWrapper(T entity) {
-        this.setEntity(entity);
-        this.initNeed();
+        super.setEntity(entity);
+        super.initNeed();
     }
 
     LambdaQueryWrapper(T entity, Class<T> entityClass, String sqlSelect, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
                        MergeSegments mergeSegments) {
-        this.setEntity(entity);
+        super.setEntity(entity);
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
         this.expression = mergeSegments;

+ 5 - 5
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/QueryWrapper.java

@@ -47,14 +47,14 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
     }
 
     public QueryWrapper(T entity) {
-        this.setEntity(entity);
-        this.initNeed();
+        super.setEntity(entity);
+        super.initNeed();
     }
 
     public QueryWrapper(T entity, String... columns) {
-        this.setEntity(entity);
+        super.setEntity(entity);
+        super.initNeed();
         this.select(columns);
-        this.initNeed();
     }
 
     /**
@@ -64,7 +64,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      */
     private QueryWrapper(T entity, Class<T> entityClass, AtomicInteger paramNameSeq,
                          Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
-        this.setEntity(entity);
+        super.setEntity(entity);
         this.entityClass = entityClass;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;

+ 16 - 4
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/LambdaUpdateWrapper.java

@@ -15,16 +15,17 @@
  */
 package com.baomidou.mybatisplus.core.conditions.update;
 
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
  * <p>
  * Lambda 更新封装
@@ -41,6 +42,17 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
      */
     private final List<String> sqlSet;
 
+    public LambdaUpdateWrapper() {
+        // 如果无参构造函数,请注意实体 NULL 情况 SET 必须有否则 SQL 异常
+        this(null);
+    }
+
+    public LambdaUpdateWrapper(T entity) {
+        super.setEntity(entity);
+        super.initNeed();
+        this.sqlSet = new ArrayList<>();
+    }
+
     LambdaUpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,
                         Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
         super.setEntity(entity);

+ 6 - 6
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/UpdateWrapper.java

@@ -15,16 +15,16 @@
  */
 package com.baomidou.mybatisplus.core.conditions.update;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
 
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+
 /**
  * <p>
  * Update 条件封装
@@ -48,8 +48,8 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
 
     public UpdateWrapper(T entity) {
         super.setEntity(entity);
+        super.initNeed();
         this.sqlSet = new ArrayList<>();
-        this.initNeed();
     }
 
     private UpdateWrapper(T entity, List<String> sqlSet, AtomicInteger paramNameSeq,

+ 63 - 15
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/Wrappers.java

@@ -14,56 +14,104 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  * @author Caratacus
  */
 public final class Wrappers {
-
+    /**
+     * 空的 EmptyWrapper
+     */
     private static final QueryWrapper emptyWrapper = new EmptyWrapper<>();
 
+    private Wrappers() {
+        // ignore
+    }
+
     /**
-     * 获取QueryWrapper
+     * 获取 QueryWrapper<T>
      *
      * @param <T> 实体类泛型
-     * @return QueryWrapper
+     * @return QueryWrapper<T>
      */
     public static <T> QueryWrapper<T> query() {
         return new QueryWrapper<>();
     }
 
     /**
-     * 获取UpdateWrapper
+     * 获取 QueryWrapper<T>
+     *
+     * @param entity 实体类
+     * @param <T>    实体类泛型
+     * @return QueryWrapper<T>
+     */
+    public static <T> QueryWrapper<T> query(T entity) {
+        return new QueryWrapper<>(entity);
+    }
+
+    /**
+     * 获取 LambdaQueryWrapper<T>
      *
      * @param <T> 实体类泛型
-     * @return UpdateWrapper
+     * @return LambdaQueryWrapper<T>
+     */
+    public static <T> LambdaQueryWrapper<T> lambdaQuery() {
+        return new LambdaQueryWrapper<>();
+    }
+
+    /**
+     * 获取 LambdaQueryWrapper<T>
+     *
+     * @param entity 实体类
+     * @param <T>    实体类泛型
+     * @return LambdaQueryWrapper<T>
+     */
+    public static <T> LambdaQueryWrapper<T> lambdaQuery(T entity) {
+        return new LambdaQueryWrapper<>(entity);
+    }
+
+    /**
+     * 获取 UpdateWrapper<T>
+     *
+     * @param <T> 实体类泛型
+     * @return UpdateWrapper<T>
      */
     public static <T> UpdateWrapper<T> update() {
         return new UpdateWrapper<>();
     }
 
     /**
-     * 获取LambdaQueryWrapper
+     * 获取 UpdateWrapper<T>
      *
      * @param entity 实体类
      * @param <T>    实体类泛型
-     * @return LambdaQueryWrapper
+     * @return UpdateWrapper<T>
      */
-    public static <T> LambdaQueryWrapper<T> query(T entity) {
-        return new LambdaQueryWrapper<>(entity);
+    public static <T> UpdateWrapper<T> update(T entity) {
+        return new UpdateWrapper<>(entity);
+    }
+
+    /**
+     * 获取 LambdaUpdateWrapper<T>
+     *
+     * @param <T> 实体类泛型
+     * @return LambdaUpdateWrapper<T>
+     */
+    public static <T> LambdaUpdateWrapper<T> lambdaUpdate() {
+        return new LambdaUpdateWrapper<>();
     }
 
     /**
-     * 获取LambdaUpdateWrapper
+     * 获取 LambdaUpdateWrapper<T>
      *
      * @param entity 实体类
      * @param <T>    实体类泛型
-     * @return LambdaUpdateWrapper
+     * @return LambdaUpdateWrapper<T>
      */
-    public static <T> LambdaUpdateWrapper<T> update(T entity) {
-        return new UpdateWrapper<>(entity).lambda();
+    public static <T> LambdaUpdateWrapper<T> lambdaUpdate(T entity) {
+        return new LambdaUpdateWrapper<>(entity);
     }
 
     /**
-     * 获取 EmptyWrapper
+     * 获取 EmptyWrapper<T>
      *
      * @param <T> 任意泛型
-     * @return EmptyWrapper
+     * @return EmptyWrapper<T>
      */
     @SuppressWarnings("unchecked")
     public static <T> QueryWrapper<T> emptyWrapper() {