Browse Source

强制升级

miemie 6 years ago
parent
commit
ba39c82637

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

@@ -15,21 +15,22 @@
  */
 package com.baomidou.mybatisplus.core.conditions.query;
 
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.function.Predicate;
+
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.function.Predicate;
-
 /**
  * <p>
  * Entity 对象封装操作类
@@ -44,11 +45,18 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
     /**
      * 查询字段
      */
+    @Deprecated
     private String[] sqlSelect;
 
+    /**
+     * 过滤的字段
+     */
+    private String predicateSelect;
+
     /**
      * 排除字段
      */
+    @Deprecated
     private String[] excludeColumns = new String[]{};
 
 
@@ -79,6 +87,9 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
 
     @Override
     public String getSqlSelect() {
+        if (StringUtils.isNotEmpty(predicateSelect)) {
+            return predicateSelect;
+        }
         //TODO 这里看要不要兼容下原来的sqlSelect,进行切割
         if (ArrayUtils.isNotEmpty(sqlSelect)) {
             List<String> excludeColumnList = Arrays.asList(excludeColumns);
@@ -102,6 +113,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
     /**
      * <p>
      * 过滤查询的字段信息(主键除外!)
+     * 该方法优先级最高,一旦使用其他的设置select的方法将失效!!!
      * </p>
      * <p>
      * 例1: 只要 java 字段名以 "test" 开头的              -> select(i -> i.getProperty().startsWith("test"))
@@ -116,7 +128,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      */
     public QueryWrapper<T> select(Predicate<TableFieldInfo> predicate) {
         this.checkEntityClass();
-        this.sqlSelect = new String[]{TableInfoHelper.getTableInfo(entityClass).chooseSelect(predicate)};
+        this.predicateSelect = TableInfoHelper.getTableInfo(entityClass).chooseSelect(predicate);
         return typedThis;
     }