Selaa lähdekoodia

增加泛型限制,格式化下代码.

nieqiurong 6 vuotta sitten
vanhempi
commit
55e5250d08

+ 7 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/AbstractWrapper.java

@@ -53,6 +53,7 @@ import com.baomidou.mybatisplus.core.conditions.interfaces.Nested;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.enums.SqlKeyword;
 import com.baomidou.mybatisplus.core.enums.SqlKeyword;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
 import com.baomidou.mybatisplus.core.toolkit.ArrayUtils;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
@@ -93,6 +94,10 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      */
      */
     protected T entity;
     protected T entity;
     protected MergeSegments expression;
     protected MergeSegments expression;
+    /**
+     * 实体类型
+     */
+    protected Class<T> entityClass;
 
 
     @Override
     @Override
     public T getEntity() {
     public T getEntity() {
@@ -100,7 +105,9 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
     }
     }
 
 
     public This setEntity(T entity) {
     public This setEntity(T entity) {
+        Assert.notNull(entity,"entity is not null");
         this.entity = entity;
         this.entity = entity;
+        this.entityClass = (Class<T>) entity.getClass();
         return typedThis;
         return typedThis;
     }
     }
 
 

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

@@ -51,14 +51,13 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
      */
      */
     private List<String> excludeColumn = new ArrayList<>();
     private List<String> excludeColumn = new ArrayList<>();
 
 
-    /**
-     * 实体类型
-     */
-    private Class<?> entityClass;
-
+    @SuppressWarnings(value = "unchecked")
     LambdaQueryWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
     LambdaQueryWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
                        MergeSegments mergeSegments) {
                        MergeSegments mergeSegments) {
         this.entity = entity;
         this.entity = entity;
+        if(entity!=null){
+            this.entityClass = (Class<T>) entity.getClass();
+        }
         this.paramNameSeq = paramNameSeq;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
         this.paramNameValuePairs = paramNameValuePairs;
         this.expression = mergeSegments;
         this.expression = mergeSegments;
@@ -99,7 +98,7 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
      * @param excludeColumns 排除的查询字段
      * @param excludeColumns 排除的查询字段
      */
      */
     @SafeVarargs
     @SafeVarargs
-    public final LambdaQueryWrapper<T> excludeColumns(Class<?> entityClass, Property<T, ?>... excludeColumns) {
+    public final LambdaQueryWrapper<T> excludeColumns(Class<T> entityClass, Property<T, ?>... excludeColumns) {
         Assert.notNull(entityClass,"entityClass is not null");
         Assert.notNull(entityClass,"entityClass is not null");
         Assert.notEmpty(excludeColumns,"excludeColumns is not empty");
         Assert.notEmpty(excludeColumns,"excludeColumns is not empty");
         this.entityClass = entityClass;
         this.entityClass = entityClass;
@@ -108,15 +107,16 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
         }
         }
         return typedThis;
         return typedThis;
     }
     }
-    
+
     /**
     /**
      * 排除字段
      * 排除字段
      * @param excludeColumns 排除字段列表
      * @param excludeColumns 排除字段列表
      */
      */
     @SafeVarargs
     @SafeVarargs
+    @SuppressWarnings(value = "unchecked")
     public final LambdaQueryWrapper<T> excludeColumns(Property<T, ?>... excludeColumns) {
     public final LambdaQueryWrapper<T> excludeColumns(Property<T, ?>... excludeColumns) {
         Assert.notNull(entity,"entity is not null");
         Assert.notNull(entity,"entity is not null");
-        return excludeColumns(entity.getClass(),excludeColumns);
+        return excludeColumns((Class<T>) entity.getClass(),excludeColumns);
     }
     }
 
 
     @Override
     @Override

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

@@ -48,10 +48,6 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      */
      */
     private String[] excludeColumns = new String[]{};
     private String[] excludeColumns = new String[]{};
 
 
-    /**
-     * 实体类型
-     */
-    private Class<?> entityClass;
 
 
     public QueryWrapper() {
     public QueryWrapper() {
         this(null,  null);
         this(null,  null);
@@ -96,27 +92,28 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
         }
         }
         return typedThis;
         return typedThis;
     }
     }
-    
+
     /**
     /**
      * 排除字段
      * 排除字段
      * @param entityClass 实体类
      * @param entityClass 实体类
      * @param excludeColumns 排除字段列表
      * @param excludeColumns 排除字段列表
      */
      */
-    public QueryWrapper<T> excludeColumns(Class<?> entityClass,String... excludeColumns) {
+    public QueryWrapper<T> excludeColumns(Class<T> entityClass,String... excludeColumns) {
         Assert.notNull(entityClass,"entityClass is not null");
         Assert.notNull(entityClass,"entityClass is not null");
         Assert.notEmpty(excludeColumns,"excludeColumns is not empty");
         Assert.notEmpty(excludeColumns,"excludeColumns is not empty");
         this.excludeColumns = excludeColumns;
         this.excludeColumns = excludeColumns;
         this.entityClass = entityClass;
         this.entityClass = entityClass;
         return typedThis;
         return typedThis;
     }
     }
-    
+
     /**
     /**
      * 排除字段
      * 排除字段
      * @param excludeColumns 排除字段列表
      * @param excludeColumns 排除字段列表
      */
      */
+    @SuppressWarnings(value = "unchecked")
     public QueryWrapper<T> excludeColumns(String... excludeColumns) {
     public QueryWrapper<T> excludeColumns(String... excludeColumns) {
         Assert.notNull(entity,"entity is not null");
         Assert.notNull(entity,"entity is not null");
-        return excludeColumns(entity.getClass(),excludeColumns);
+        return excludeColumns((Class<T>) entity.getClass(),excludeColumns);
     }
     }
 
 
     /**
     /**