diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java index e52896e..7603cc6 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/WrapperUtils.java @@ -124,6 +124,9 @@ public class WrapperUtils { } private static String mainLogic(boolean hasWhere, Class clazz, MPJLambdaWrapper wrapper) { + if (!wrapper.getLogicSql()) { + return StringPool.EMPTY; + } String info = LogicInfoUtils.getLogicInfo(null, clazz, true, wrapper.getAlias()); if (StringUtils.isNotBlank(info)) { if (hasWhere) { diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java index 38b5a75..47b7bf8 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.OrderBy; import com.baomidou.mybatisplus.core.conditions.SharedString; import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -23,7 +24,6 @@ import java.nio.charset.StandardCharsets; import java.util.Arrays; import java.util.HashMap; import java.util.Map; -import java.util.Objects; import java.util.concurrent.atomic.AtomicInteger; import java.util.function.BiConsumer; import java.util.function.Function; @@ -340,6 +340,7 @@ public abstract class MPJAbstractLambdaWrapper LogicInfoUtils.getLogicInfoNoAnd( wrapper.getIndex(), wrapper.getJoinClass(), wrapper.isHasAlias(), wrapper.getAlias() diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/LambdaWrapperTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/LambdaWrapperTest.java index 1d72f7e..0f78344 100644 --- a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/LambdaWrapperTest.java +++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/LambdaWrapperTest.java @@ -1088,20 +1088,19 @@ class LambdaWrapperTest { */ @Test void union() { - ThreadLocalUtils.set(); + ThreadLocalUtils.set("SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE t.del=false AND (t.id = ?) UNION SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE (t.`name` = ? AND (t.`name` = ?)) UNION SELECT t.id,t.pid,t.`name`,t.`json`,t.sex,t.head_img,t.create_time,t.address_id,t.address_id2,t.del,t.create_by,t.update_by FROM `user` t WHERE t.del=false AND (t.pid = ?)"); MPJLambdaWrapper wrapper = JoinWrappers.lambda(UserDO.class) .selectAll(UserDO.class) .eq(UserDO::getId, 1); MPJLambdaWrapper wrapper1 = JoinWrappers.lambda(UserDO.class) .selectAll(UserDO.class) + .disableLogicDel() .eq(UserDO::getName, "张三 2") .and(w -> w.eq(UserDO::getName, "张三 2")); MPJLambdaWrapper wrapper2 = JoinWrappers.lambda(UserDO.class) .selectAll(UserDO.class) .eq(UserDO::getPid, 2); wrapper.union(wrapper1, wrapper2); - - System.out.println(wrapper.getUnionSql()); List list = wrapper.list(); assert list.size() == 7;