浏览代码

重载excludeColumns.

聂秋荣 7 年之前
父节点
当前提交
30b2b96b4d

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

@@ -24,6 +24,7 @@ import java.util.stream.Collectors;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
@@ -105,6 +106,16 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
         }
         return typedThis;
     }
+    
+    @SafeVarargs
+    public final LambdaQueryWrapper<T> excludeColumns(Property<T, ?>... excludeColumns) {
+        Assert.notNull(entity,"entity not null");
+        this.entityClass = entity.getClass();
+        for (Property<T, ?> column : excludeColumns) {
+            excludeColumn.add(this.columnToString(column));
+        }
+        return typedThis;
+    }
 
     @Override
     protected LambdaQueryWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {

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

@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
@@ -101,6 +102,13 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
         this.entityClass = clazz;
         return typedThis;
     }
+    
+    public QueryWrapper<T> excludeColumns(String... excludeColumns) {
+        this.excludeColumns = excludeColumns;
+        Assert.notNull(entity,"entity not null");
+        this.entityClass = entity.getClass();
+        return typedThis;
+    }
 
     /**
      * <p>

+ 14 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/H2UserTest.java

@@ -176,6 +176,13 @@ public class H2UserTest extends BaseTest {
             Assert.assertNotNull(u.getName());
             Assert.assertNull(u.getPrice());
         }
+        ew = new QueryWrapper<>(new H2User());
+        ew.excludeColumns("age", "price", null);
+        for (H2User u : userService.list(ew)) {
+            Assert.assertNotNull(u.getTestId());
+            Assert.assertNotNull(u.getName());
+            Assert.assertNull(u.getPrice());
+        }
         Wrapper<H2User> wrapper = new QueryWrapper<H2User>().lambda().select().excludeColumns(H2User.class,H2User::getAge,H2User::getPrice);
         List<H2User> list2  = userService.list(wrapper);
         for (H2User u : list2) {
@@ -183,6 +190,13 @@ public class H2UserTest extends BaseTest {
             Assert.assertNotNull(u.getName());
             Assert.assertNull(u.getPrice());
         }
+        wrapper = new QueryWrapper<>(new H2User()).lambda().select().excludeColumns(H2User::getAge,H2User::getPrice);
+        list2  = userService.list(wrapper);
+        for (H2User u : list2) {
+            Assert.assertNotNull(u.getTestId());
+            Assert.assertNotNull(u.getName());
+            Assert.assertNull(u.getPrice());
+        }
         wrapper = new QueryWrapper<H2User>().lambda().select(H2User::getTestId,H2User::getName,H2User::getTestDate,H2User::getPrice,H2User::getAge).excludeColumns(H2User.class,H2User::getAge,H2User::getTestDate,H2User::getVersion,H2User::getPrice);
         list2 = userService.list(wrapper);
         for (H2User u : list2) {