Browse Source

Wrapper 优化ing

miemie 5 years ago
parent
commit
543f54aeb5

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

@@ -457,14 +457,7 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
 
     @Override
     public String getSqlSegment() {
-        String sqlSegment = expression.getSqlSegment();
-        if (StringUtils.isNotBlank(sqlSegment)) {
-            return sqlSegment + lastSql.getStringValue();
-        }
-        if (StringUtils.isNotBlank(lastSql.getStringValue())) {
-            return lastSql.getStringValue();
-        }
-        return null;
+        return expression.getSqlSegment() + lastSql.getStringValue();
     }
 
     @Override

+ 6 - 0
mybatis-plus-core/src/main/java/com/baomidou/mybatisplus/core/conditions/Wrapper.java

@@ -161,6 +161,12 @@ public abstract class Wrapper<T> implements ISqlSegment {
         return !nonEmptyOfEntity();
     }
 
+    /**
+     * 获取格式化后的执行sql
+     *
+     * @return sql
+     * @since 3.3.1
+     */
     public String getTargetSql() {
         return getSqlSegment().replaceAll("#\\{.+?}", "?");
     }

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

@@ -121,7 +121,7 @@ class WrapperTest {
             "((id = ?) AND id = ?)");
 
         logSqlSegment("嵌套,多层嵌套", new QueryWrapper<User>()
-                .and(i -> i.eq("id", 1).and(j -> j.eq("id", 1))),
+                .and(i -> i.eq("id", 1).and(j -> j.eq("id", 2))),
             "((id = ?) AND (id = ?))");
 
         logSqlSegment("嵌套,第一个套外的 or 自动消除", new QueryWrapper<User>()