From bb93df99b48daaef1547741e88bae847cc6343bd Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Tue, 31 Oct 2023 01:38:06 +0800 Subject: [PATCH] =?UTF-8?q?fix=20union=E6=9D=A1=E4=BB=B6=E5=B5=8C=E5=A5=97?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=90=8D=E9=97=AE=E9=A2=98=20https://github.?= =?UTF-8?q?com/yulichang/mybatis-plus-join/issues/87=20https://gitee.com/b?= =?UTF-8?q?est=5Fhandsome/mybatis-plus-join/issues/I8C2QR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/yulichang/kt/KtAbstractWrapper.java | 16 ++++++++-------- .../com/github/yulichang/kt/KtLambdaWrapper.java | 10 ++++++---- .../wrapper/MPJAbstractLambdaWrapper.java | 5 +++-- .../yulichang/wrapper/MPJAbstractWrapper.java | 16 ++++++++-------- .../yulichang/wrapper/MPJLambdaWrapper.java | 10 ++++++---- .../yulichang/test/join/entity/UserTTT.java | 4 ---- .../yulichang/test/join/LambdaWrapperTest.java | 5 ++++- .../yulichang/test/kt/LambdaWrapperTest.kt | 1 + 8 files changed, 36 insertions(+), 31 deletions(-) delete mode 100644 mybatis-plus-join-test/test-join/src/main/java/com/github/yulichang/test/join/entity/UserTTT.java diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtAbstractWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtAbstractWrapper.java index 4bf7235..2c0f733 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtAbstractWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/KtAbstractWrapper.java @@ -64,7 +64,7 @@ public abstract class KtAbstractWrapper extends KtAbstractLambdaWrapper entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq, - Map paramNameValuePairs, MergeSegments mergeSegments, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, SharedString lastSql, SharedString sqlComment, SharedString sqlFirst, TableList tableList, Integer index, String keyWord, Class joinClass, String tableName) { super.setEntity(entity); @@ -134,6 +134,7 @@ public class KtLambdaWrapper extends KtAbstractLambdaWrapper extends KtAbstractLambdaWrapper selectSub(Class clazz, String st, Consumer> consumer, KProperty alias) { KtLambdaWrapper wrapper = new KtLambdaWrapper(null, clazz, SharedString.emptyString(), paramNameSeq, paramNameValuePairs, - new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), + new MergeSegments(), SharedString.emptyString(), this.paramAlias, SharedString.emptyString(), SharedString.emptyString(), new TableList(), null, null, null, null) { }; wrapper.tableList.setAlias(st); @@ -348,7 +349,7 @@ public class KtLambdaWrapper extends KtAbstractLambdaWrapper instance(Integer index, String keyWord, Class joinClass, String tableName) { return new KtLambdaWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs, - new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), + new MergeSegments(), SharedString.emptyString(), this.paramAlias, SharedString.emptyString(), SharedString.emptyString(), this.tableList, index, keyWord, joinClass, tableName); } @@ -356,7 +357,8 @@ public class KtLambdaWrapper extends KtAbstractLambdaWrapper> extends MPJAbstractWrapper implements QueryJoin { @@ -455,7 +456,7 @@ public abstract class MPJAbstractLambdaWrapper extends MPJAbstractLambdaWrapper entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq, - Map paramNameValuePairs, MergeSegments mergeSegments, + Map paramNameValuePairs, MergeSegments mergeSegments, SharedString paramAlias, SharedString lastSql, SharedString sqlComment, SharedString sqlFirst, TableList tableList, Integer index, String keyWord, Class joinClass, String tableName) { super.setEntity(entity); @@ -132,6 +132,7 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper extends MPJAbstractLambdaWrapper MPJLambdaWrapper selectSub(Class clazz, String st, Consumer> consumer, SFunction alias) { MPJLambdaWrapper wrapper = new MPJLambdaWrapper(null, clazz, SharedString.emptyString(), paramNameSeq, paramNameValuePairs, - new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), + new MergeSegments(), this.paramAlias, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), new TableList(), null, null, null, null) { }; wrapper.tableList.setAlias(st); @@ -348,7 +349,7 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper instance(Integer index, String keyWord, Class joinClass, String tableName) { return new MPJLambdaWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs, - new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), + new MergeSegments(), this.paramAlias, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(), this.tableList, index, keyWord, joinClass, tableName); } @@ -359,7 +360,8 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper wrapper1 = JoinWrappers.lambda(UserDO.class) .selectAll(UserDO.class) - .eq(UserDO::getName, "张三 2"); + .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; diff --git a/mybatis-plus-join-test/test-kotlin/src/test/com/github/yulichang/test/kt/LambdaWrapperTest.kt b/mybatis-plus-join-test/test-kotlin/src/test/com/github/yulichang/test/kt/LambdaWrapperTest.kt index e974a64..43b61de 100644 --- a/mybatis-plus-join-test/test-kotlin/src/test/com/github/yulichang/test/kt/LambdaWrapperTest.kt +++ b/mybatis-plus-join-test/test-kotlin/src/test/com/github/yulichang/test/kt/LambdaWrapperTest.kt @@ -1146,6 +1146,7 @@ class LambdaWrapperTest { val wrapper1: KtLambdaWrapper = KtWrappers.query(UserDO::class.java) .selectAll(UserDO::class.java) .eq(UserDO::name, "张三 2") + .and { a -> a.eq(UserDO::name, "张三 2") } val wrapper2: KtLambdaWrapper = KtWrappers.query(UserDO::class.java) .selectAll(UserDO::class.java) .eq(UserDO::pid, 2)