From 1294c32e7261d45348d22f46c2e5f8cffef1242b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=80=E6=BA=90=E6=B5=B7=E5=93=A5?= Date: Tue, 9 May 2023 13:20:21 +0800 Subject: [PATCH] close #I70OIA --- .../com/mybatisflex/core/query/Brackets.java | 16 +++++++++++++++ .../mybatisflex/test/EntityTestStarter.java | 20 +++++++++---------- 2 files changed, 26 insertions(+), 10 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 a36118d2..93c4338d 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 @@ -58,6 +58,22 @@ public class Brackets extends QueryCondition { return childCondition; } + @Override + public boolean checkEffective() { + boolean effective = super.checkEffective(); + if (!effective) { + return false; + } + QueryCondition condition = this.childCondition; + while (condition != null) { + if (condition.checkEffective()) { + return true; + } + condition = condition.next; + } + return false; + } + @Override public String toSql(List queryTables, IDialect dialect) { diff --git a/mybatis-flex-test/mybatis-flex-native-test/src/main/java/com/mybatisflex/test/EntityTestStarter.java b/mybatis-flex-test/mybatis-flex-native-test/src/main/java/com/mybatisflex/test/EntityTestStarter.java index acdd32eb..3928ef59 100644 --- a/mybatis-flex-test/mybatis-flex-native-test/src/main/java/com/mybatisflex/test/EntityTestStarter.java +++ b/mybatis-flex-test/mybatis-flex-native-test/src/main/java/com/mybatisflex/test/EntityTestStarter.java @@ -56,21 +56,21 @@ public class EntityTestStarter { // List accounts1 = myAccountMapper.selectAll(); -// QueryWrapper wrapper = QueryWrapper.create().select().from(ACCOUNT) -// .and(ACCOUNT.ID.ge(100).and(ACCOUNT.ID.ge(200))) -// .and(ACCOUNT.ID.ge(100).and(ACCOUNT.ID.ge(200))) -// .groupBy(ACCOUNT.ID); -// -// List accounts = accountMapper.selectListByQuery(wrapper); - - QueryWrapper wrapper = QueryWrapper.create().select().from(ACCOUNT) -// .leftJoin(ARTICLE).on(ARTICLE.ACCOUNT_ID.eq(ACCOUNT.ID).and(ACCOUNT.ID.ge(100))) - .and(ACCOUNT.ID.ge(100).when(false)); + .and(ACCOUNT.ID.ge(100).and(ACCOUNT.ID.ge(200))) + .and(ACCOUNT.ID.ge(100).and(ACCOUNT.ID.ge(200))) + .groupBy(ACCOUNT.ID); List accounts = accountMapper.selectListByQuery(wrapper); System.out.println(accounts); + QueryWrapper wrapper1 = QueryWrapper.create().select().from(ACCOUNT) +// .leftJoin(ARTICLE).on(ARTICLE.ACCOUNT_ID.eq(ACCOUNT.ID).and(ACCOUNT.ID.ge(100))) + .and(ACCOUNT.ID.ge(100).when(false).and(ACCOUNT.ID.ge(100).when(false))); + + List accounts1 = accountMapper.selectListByQuery(wrapper1); + System.out.println(accounts1); + // QueryWrapper queryWrapper = new QueryWrapper(); // queryWrapper.where(ACCOUNT.ID.in(