浏览代码

上下共享 sqlSelect

miemie 6 年之前
父节点
当前提交
4fffa07d26

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

@@ -40,7 +40,7 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
     /**
      * 查询字段
      */
-    private String sqlSelect;
+    private SharedSqlSelect sqlSelect = new SharedSqlSelect();
 
     public LambdaQueryWrapper() {
         this(null);
@@ -51,8 +51,8 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
         super.initNeed();
     }
 
-    LambdaQueryWrapper(T entity, Class<T> entityClass, String sqlSelect, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
-                       MergeSegments mergeSegments) {
+    LambdaQueryWrapper(T entity, Class<T> entityClass, SharedSqlSelect sqlSelect, AtomicInteger paramNameSeq,
+                       Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
         super.setEntity(entity);
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
@@ -71,7 +71,7 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
     @SafeVarargs
     public final LambdaQueryWrapper<T> select(SFunction<T, ?>... columns) {
         if (ArrayUtils.isNotEmpty(columns)) {
-            this.sqlSelect = this.columnsToString(columns);
+            this.sqlSelect.setSqlSelect(this.columnsToString(columns));
         }
         return typedThis;
     }
@@ -97,13 +97,13 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
      */
     public LambdaQueryWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
         this.entityClass = entityClass;
-        this.sqlSelect = TableInfoHelper.getTableInfo(getCheckEntityClass()).chooseSelect(predicate);
+        this.sqlSelect.setSqlSelect(TableInfoHelper.getTableInfo(getCheckEntityClass()).chooseSelect(predicate));
         return typedThis;
     }
 
     @Override
     public String getSqlSelect() {
-        return sqlSelect;
+        return sqlSelect.getSqlSelect();
     }
 
     /**

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

@@ -40,7 +40,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
     /**
      * 查询字段
      */
-    private String sqlSelect;
+    private SharedSqlSelect sqlSelect = new SharedSqlSelect();
 
     public QueryWrapper() {
         this(null);
@@ -73,7 +73,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
 
     public QueryWrapper<T> select(String... columns) {
         if (ArrayUtils.isNotEmpty(columns)) {
-            this.sqlSelect = String.join(StringPool.COMMA, columns);
+            this.sqlSelect.setSqlSelect(String.join(StringPool.COMMA, columns));
         }
         return typedThis;
     }
@@ -99,7 +99,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      */
     public QueryWrapper<T> select(Class<T> entityClass, Predicate<TableFieldInfo> predicate) {
         this.entityClass = entityClass;
-        this.sqlSelect = TableInfoHelper.getTableInfo(getCheckEntityClass()).chooseSelect(predicate);
+        this.sqlSelect.setSqlSelect(TableInfoHelper.getTableInfo(getCheckEntityClass()).chooseSelect(predicate));
         return typedThis;
     }
 
@@ -114,7 +114,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
 
     @Override
     public String getSqlSelect() {
-        return sqlSelect;
+        return sqlSelect.getSqlSelect();
     }
 
     @Override

+ 18 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/query/SharedSqlSelect.java

@@ -0,0 +1,18 @@
+package com.baomidou.mybatisplus.core.conditions.query;
+
+import lombok.Data;
+
+/**
+ * 共享查询字段
+ *
+ * @author miemie
+ * @since 2018-11-20
+ */
+@Data
+public class SharedSqlSelect {
+
+    /**
+     * 查询字段
+     */
+    private String sqlSelect;
+}