Bladeren bron

修正一个小问题,补全测试

miemie 7 jaren geleden
bovenliggende
commit
3fde155990

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

@@ -92,7 +92,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      * 数据库表映射实体类
      */
     protected T entity;
-    private MergeSegments expression = new MergeSegments();
+    protected MergeSegments expression;
 
     @Override
     public T getEntity() {
@@ -412,6 +412,7 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
     protected void initNeed() {
         paramNameSeq = new AtomicInteger(0);
         paramNameValuePairs = new HashMap<>(16);
+        expression = new MergeSegments();
     }
 
     /**
@@ -421,7 +422,6 @@ public abstract class AbstractWrapper<T, R, This extends AbstractWrapper<T, R, T
      *
      * @param condition   是否执行
      * @param sqlSegments sql片段数组
-     * @return this
      */
     protected This doIt(boolean condition, ISqlSegment... sqlSegments) {
         if (condition) {

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

@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
@@ -44,10 +45,12 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
      */
     private List<String> sqlSelect = new ArrayList<>();
 
-    LambdaQueryWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
+    LambdaQueryWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
+                       MergeSegments mergeSegments) {
         this.entity = entity;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
+        this.expression = mergeSegments;
     }
 
     @Override
@@ -76,6 +79,6 @@ public class LambdaQueryWrapper<T> extends AbstractLambdaWrapper<T, LambdaQueryW
 
     @Override
     protected LambdaQueryWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new LambdaQueryWrapper<>(entity, paramNameSeq, paramNameValuePairs);
+        return new LambdaQueryWrapper<>(entity, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }

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

@@ -20,6 +20,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
@@ -53,11 +54,13 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
         this.initNeed();
     }
 
-    private QueryWrapper(T entity, String sqlSelect, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
+    private QueryWrapper(T entity, String sqlSelect, AtomicInteger paramNameSeq,
+                         Map<String, Object> paramNameValuePairs, MergeSegments mergeSegments) {
         this.entity = entity;
         this.sqlSelect = sqlSelect;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
+        this.expression = mergeSegments;
     }
 
     @Override
@@ -78,7 +81,7 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
      * </p>
      */
     public LambdaQueryWrapper<T> lambda() {
-        return new LambdaQueryWrapper<>(entity, paramNameSeq, paramNameValuePairs);
+        return new LambdaQueryWrapper<>(entity, paramNameSeq, paramNameValuePairs, expression);
     }
 
     @Override
@@ -88,6 +91,6 @@ public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>>
 
     @Override
     protected QueryWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new QueryWrapper<>(entity, sqlSelect, paramNameSeq, paramNameValuePairs);
+        return new QueryWrapper<>(entity, sqlSelect, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }

+ 5 - 2
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/LambdaUpdateWrapper.java

@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 import com.baomidou.mybatisplus.core.toolkit.support.Property;
@@ -44,10 +45,12 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
      */
     private List<String> sqlSet = new ArrayList<>();
 
-    LambdaUpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
+    LambdaUpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
+                        MergeSegments mergeSegments) {
         this.entity = entity;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
+        this.expression = mergeSegments;
     }
 
     @Override
@@ -71,6 +74,6 @@ public class LambdaUpdateWrapper<T> extends AbstractLambdaWrapper<T, LambdaUpdat
 
     @Override
     protected LambdaUpdateWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs);
+        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }

+ 6 - 3
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/update/UpdateWrapper.java

@@ -24,6 +24,7 @@ import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import com.baomidou.mybatisplus.core.conditions.AbstractWrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
 
@@ -53,10 +54,12 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
         this.initNeed();
     }
 
-    private UpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
+    private UpdateWrapper(T entity, AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs,
+                          MergeSegments mergeSegments) {
         this.entity = entity;
         this.paramNameSeq = paramNameSeq;
         this.paramNameValuePairs = paramNameValuePairs;
+        this.expression = mergeSegments;
     }
 
     /**
@@ -65,7 +68,7 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
      * </p>
      */
     public LambdaUpdateWrapper<T> lambda() {
-        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs);
+        return new LambdaUpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, expression);
     }
 
     @Override
@@ -123,6 +126,6 @@ public class UpdateWrapper<T> extends AbstractWrapper<T, String, UpdateWrapper<T
 
     @Override
     protected UpdateWrapper<T> instance(AtomicInteger paramNameSeq, Map<String, Object> paramNameValuePairs) {
-        return new UpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs);
+        return new UpdateWrapper<>(entity, paramNameSeq, paramNameValuePairs, new MergeSegments());
     }
 }

+ 8 - 13
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/toolkit/GlobalConfigUtils.java

@@ -20,13 +20,13 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
-import com.baomidou.mybatisplus.annotation.DbType;
 import org.apache.ibatis.logging.Log;
 import org.apache.ibatis.logging.LogFactory;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
 
+import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.core.config.GlobalConfig;
 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
@@ -45,14 +45,14 @@ import com.baomidou.mybatisplus.core.injector.ISqlInjector;
  */
 public class GlobalConfigUtils {
 
-    /**
-     * 日志
-     */
-    private static final Log logger = LogFactory.getLog(GlobalConfigUtils.class);
     /**
      * 默认参数
      */
     public static final GlobalConfig DEFAULT = defaults();
+    /**
+     * 日志
+     */
+    private static final Log logger = LogFactory.getLog(GlobalConfigUtils.class);
     /**
      * 缓存全局信息
      */
@@ -68,7 +68,6 @@ public class GlobalConfigUtils {
      * </p>
      *
      * @param clazz 实体类
-     * @return
      */
     public static SqlSessionFactory currentSessionFactory(Class<?> clazz) {
         String configMark = TableInfoHelper.getTableInfo(clazz).getConfigMark();
@@ -78,14 +77,13 @@ public class GlobalConfigUtils {
 
     /**
      * <p>
-     * 获取默认MybatisGlobalConfig
+     * 获取默认 MybatisGlobalConfig
      * </p>
-     *
-     * @return
      */
     public static GlobalConfig defaults() {
         GlobalConfig config = new GlobalConfig();
-        config.setDbConfig(new GlobalConfig.DbConfig());
+        GlobalConfig.DbConfig dbConfig = new GlobalConfig.DbConfig().setDbType(DbType.MYSQL);
+        config.setDbConfig(dbConfig);
         return config;
     }
 
@@ -96,7 +94,6 @@ public class GlobalConfigUtils {
      *
      * @param configuration       Mybatis 容器配置对象
      * @param mybatisGlobalConfig 全局配置
-     * @return
      */
     public static void setGlobalConfig(Configuration configuration, GlobalConfig mybatisGlobalConfig) {
         if (configuration == null || mybatisGlobalConfig == null) {
@@ -112,7 +109,6 @@ public class GlobalConfigUtils {
      * </p>
      *
      * @param configuration Mybatis 容器配置对象
-     * @return
      */
     public static GlobalConfig getGlobalConfig(Configuration configuration) {
         if (configuration == null) {
@@ -127,7 +123,6 @@ public class GlobalConfigUtils {
      * </p>
      *
      * @param configMark 配置标记
-     * @return
      */
     public static GlobalConfig getGlobalConfig(String configMark) {
         GlobalConfig cache = GLOBAL_CONFIG.get(configMark);

+ 11 - 0
mybatis-plus-core/src/test/java/com/baomidou/mybatisplus/core/test/WrapperTest.java

@@ -27,6 +27,7 @@ import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.TableInfoHelper;
 
 public class WrapperTest {
 
@@ -171,6 +172,16 @@ public class WrapperTest {
         logParams(queryWrapper);
     }
 
+    @Test
+    public void testPluralLambda() {
+        TableInfoHelper.initTableInfo(null, User.class);
+        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(User::getName,"sss");
+        queryWrapper.lambda().eq(User::getName,"sss2");
+        logSqlSegment("测试 PluralLambda", queryWrapper);
+        logParams(queryWrapper);
+    }
+
     private List<Object> getList() {
         List<Object> list = new ArrayList<>();
         for (int i = 0; i < 2; i++) {