From bf21f830b06eca2f9af630a73a762a53a7d948be Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Wed, 28 Jun 2023 17:43:56 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20containsTable?= =?UTF-8?q?=20=E9=94=99=E8=AF=AF=EF=BC=8C=E5=A6=82=E6=9E=9C=20Brackets=20?= =?UTF-8?q?=E4=B8=8B=E9=9D=A2=E8=BF=98=E6=9C=89=20QueryCondition=20?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=BB=A7=E7=BB=AD=E5=88=A4=E6=96=AD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/mybatisflex/core/query/Brackets.java | 5 ++++- .../main/java/com/mybatisflex/core/query/QueryCondition.java | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Brackets.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Brackets.java index 1d37f44b..1f2059b1 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Brackets.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/Brackets.java @@ -103,7 +103,10 @@ public class Brackets extends QueryCondition { @Override boolean containsTable(String... tables) { - return childCondition != null && childCondition.containsTable(tables); + if (childCondition != null && childCondition.containsTable(tables)) { + return true; + } + return nextContainsTable(tables); } @Override diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java index 32c7704f..c8397d1e 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryCondition.java @@ -268,7 +268,7 @@ public class QueryCondition implements CloneSupport { return nextContainsTable(tables); } - private boolean nextContainsTable(String... tables) { + boolean nextContainsTable(String... tables) { if (next == null) { return false; } From 690100bebda9126057f5fd936f91dd94f593fa22 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Wed, 28 Jun 2023 17:44:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95=20containsTable?= =?UTF-8?q?=20=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/common/QueryWrapperTest.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/QueryWrapperTest.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/QueryWrapperTest.java index 63a04d49..18b01ffc 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/QueryWrapperTest.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/test/java/com/mybatisflex/test/common/QueryWrapperTest.java @@ -16,7 +16,10 @@ package com.mybatisflex.test.common; +import com.mybatisflex.core.query.CPI; +import com.mybatisflex.core.query.QueryCondition; import com.mybatisflex.core.query.QueryWrapper; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import java.util.Arrays; @@ -71,4 +74,21 @@ class QueryWrapperTest { System.out.println(queryWrapper.toSQL()); } + @Test + void test03() { + QueryWrapper queryWrapper = QueryWrapper.create() + .select() + .from(USER.as("u")) + .leftJoin(USER_ROLE).as("ur").on(USER.USER_ID.eq(USER_ROLE.USER_ID)) + .where(QueryCondition.createEmpty()) + .and(USER.USER_ID.eq(1).or(USER.USER_ID.in( + QueryWrapper.create().select(USER_ROLE.USER_ID).from(USER_ROLE))) + ) + .and(USER_ROLE.USER_ID.eq(1)); + System.out.println(queryWrapper.toSQL()); + QueryCondition whereQueryCondition = CPI.getWhereQueryCondition(queryWrapper); + boolean contained = CPI.containsTable(whereQueryCondition, "tb_user_role"); + Assertions.assertTrue(contained); + } + } \ No newline at end of file