miemie 6 years ago
parent
commit
8ac1618389

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

@@ -99,6 +99,19 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
         return typedThis;
     }
 
+    /**
+     * <p>
+     * 过滤查询的字段信息(主键除外!)
+     * </p>
+     * <p>
+     * 例1: 只要 java 字段名以 "test" 开头的              -> select(i -> i.getProperty().startsWith("test"))
+     * 例2: 只要 java 字段属性是 CharSequence 类型的       -> select(TableFieldInfo::isCharSequence)
+     * 例3: 只要 java 字段没有填充策略的                   -> select(i -> i.getFieldFill == FieldFill.DEFAULT)
+     * </p>
+     *
+     * @param predicate 过滤方式
+     * @return this
+     */
     public QueryWrapper<T> select(Predicate<TableFieldInfo> predicate) {
         this.checkEntityClass();
         this.sqlSelect = new String[]{TableInfoHelper.getTableInfo(entityClass).chooseSelect(predicate)};
@@ -110,7 +123,9 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      *
      * @param entityClass    实体类
      * @param excludeColumns 排除字段列表
+     * @deprecated begin 3.0.3,建议使用 {@link #select(Predicate)}
      */
+    @Deprecated
     public QueryWrapper<T> excludeColumns(Class<T> entityClass, String... excludeColumns) {
         this.checkEntityClass();
         Assert.notEmpty(excludeColumns, "excludeColumns is not empty");
@@ -125,7 +140,9 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      * </p>
      *
      * @param excludeColumns 排除字段列表
+     * @deprecated begin 3.0.3,建议使用 {@link #select(Predicate)}
      */
+    @Deprecated
     @SuppressWarnings(value = "unchecked")
     public QueryWrapper<T> excludeColumns(String... excludeColumns) {
         Assert.notNull(entity, "Unable to find entity type, please use method `excludeColumns(Class<T> entityClass, String... excludeColumns)`");

+ 2 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/mysql/MysqlTestDataMapperTest.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.test.base.entity.CommonData;
@@ -230,6 +231,6 @@ public class MysqlTestDataMapperTest {
 
     @Test
     public void d9_testSetSelect() {
-        commonMapper.selectList(new QueryWrapper<>(new CommonData()).select(i -> i.getProperty().startsWith("test")));
+        commonMapper.selectList(new QueryWrapper<>(new CommonData()).select(TableFieldInfo::isCharSequence));
     }
 }