From 1f3a73056d19191bba14da0ae6b0d1605ce4a137 Mon Sep 17 00:00:00 2001
From: yulichang <570810310@qq.com>
Date: Tue, 29 Oct 2024 09:57:16 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pom.xml | 4 +-
.../yulichang/adapter/v312/Adapter312.java} | 4 +-
mybatis-plus-join-adapter/pom.xml | 2 +-
mybatis-plus-join-boot-starter/pom.xml | 2 +-
mybatis-plus-join-core/pom.xml | 2 +-
.../yulichang/adapter/AdapterHelper.java | 8 +-
.../wrapper/JoinAbstractLambdaWrapper.java | 9 +-
.../wrapper/JoinAbstractWrapper.java | 5 +-
.../yulichang/wrapper/interfaces/Nested.java | 131 ++++++++++++++++++
9 files changed, 145 insertions(+), 22 deletions(-)
rename mybatis-plus-join-adapter/{mybatis-plus-join-adapter-v320 => mybatis-plus-join-adapter-v312}/pom.xml (94%)
rename mybatis-plus-join-adapter/{mybatis-plus-join-adapter-v320/src/main/java/com/github/yulichang/adapter/v320/Adapter320.java => mybatis-plus-join-adapter-v312/src/main/java/com/github/yulichang/adapter/v312/Adapter312.java} (97%)
create mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Nested.java
diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/pom.xml b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/pom.xml
similarity index 94%
rename from mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/pom.xml
rename to mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/pom.xml
index fbf176b..c648a7d 100644
--- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/pom.xml
+++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/pom.xml
@@ -8,9 +8,9 @@
mybatis-plus-join-adapter
${revision}
- mybatis-plus-join-adapter-v320
+ mybatis-plus-join-adapter-v312
${revision}
- mybatis-plus-join-adapter-v320
+ mybatis-plus-join-adapter-v312
An enhanced toolkit of Mybatis-Plus to simplify development.
https://github.com/yulichang/mybatis-plus-join
diff --git a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/src/main/java/com/github/yulichang/adapter/v320/Adapter320.java b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/src/main/java/com/github/yulichang/adapter/v312/Adapter312.java
similarity index 97%
rename from mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/src/main/java/com/github/yulichang/adapter/v320/Adapter320.java
rename to mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/src/main/java/com/github/yulichang/adapter/v312/Adapter312.java
index 3b5eca6..624103b 100644
--- a/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v320/src/main/java/com/github/yulichang/adapter/v320/Adapter320.java
+++ b/mybatis-plus-join-adapter/mybatis-plus-join-adapter-v312/src/main/java/com/github/yulichang/adapter/v312/Adapter312.java
@@ -1,4 +1,4 @@
-package com.github.yulichang.adapter.v320;
+package com.github.yulichang.adapter.v312;
import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
@@ -24,7 +24,7 @@ import java.util.function.Supplier;
* @author yulichang
* @since 1.4.3
*/
-public class Adapter320 implements IAdapter {
+public class Adapter312 implements IAdapter {
@Override
public boolean mpjHasLogic(TableInfo tableInfo) {
diff --git a/mybatis-plus-join-adapter/pom.xml b/mybatis-plus-join-adapter/pom.xml
index 0db57ed..f2f2b20 100644
--- a/mybatis-plus-join-adapter/pom.xml
+++ b/mybatis-plus-join-adapter/pom.xml
@@ -14,7 +14,7 @@
mybatis-plus-join-adapter-base
- mybatis-plus-join-adapter-v320
+ mybatis-plus-join-adapter-v312
mybatis-plus-join-adapter-v33x
mybatis-plus-join-adapter-v3431
mybatis-plus-join-adapter-v352
diff --git a/mybatis-plus-join-boot-starter/pom.xml b/mybatis-plus-join-boot-starter/pom.xml
index 79de11f..9bdd18a 100644
--- a/mybatis-plus-join-boot-starter/pom.xml
+++ b/mybatis-plus-join-boot-starter/pom.xml
@@ -46,7 +46,7 @@
com.baomidou
- mybatis-plus-boot-starter
+ mybatis-plus-spring-boot3-starter
${mybatis.plus.version}
provided
diff --git a/mybatis-plus-join-core/pom.xml b/mybatis-plus-join-core/pom.xml
index 4e143b4..c82d434 100644
--- a/mybatis-plus-join-core/pom.xml
+++ b/mybatis-plus-join-core/pom.xml
@@ -41,7 +41,7 @@
com.github.yulichang
- mybatis-plus-join-adapter-v320
+ mybatis-plus-join-adapter-v312
${revision}
diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java
index a05fe00..e822352 100644
--- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java
+++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/adapter/AdapterHelper.java
@@ -3,7 +3,7 @@ package com.github.yulichang.adapter;
import com.baomidou.mybatisplus.core.toolkit.ExceptionUtils;
import com.github.yulichang.adapter.base.IAdapter;
import com.github.yulichang.adapter.base.tookit.VersionUtils;
-import com.github.yulichang.adapter.v320.Adapter320;
+import com.github.yulichang.adapter.v312.Adapter312;
import com.github.yulichang.adapter.v33x.Adapter33x;
import com.github.yulichang.adapter.v3431.Adapter3431;
import com.github.yulichang.adapter.v355.Adapter355;
@@ -33,10 +33,10 @@ public class AdapterHelper {
adapter = new Adapter3431();
} else if (VersionUtils.compare(version, "3.3.0") >= 0) {
adapter = new Adapter33x();
- } else if (VersionUtils.compare(version, "3.2.0") >= 0) {
- adapter = new Adapter320();
+ } else if (VersionUtils.compare(version, "3.1.2") >= 0) {
+ adapter = new Adapter312();
} else {
- throw ExceptionUtils.mpe("MPJ需要MP版本3.2.0+,当前MP版本%s", version);
+ throw ExceptionUtils.mpe("MPJ需要MP版本3.1.2+,当前MP版本%s", version);
}
}
diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractLambdaWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractLambdaWrapper.java
index 1c9061e..52f41af 100644
--- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractLambdaWrapper.java
+++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractLambdaWrapper.java
@@ -443,14 +443,7 @@ public abstract class JoinAbstractLambdaWrapper Children join(String keyWord, Class clazz, MConsumer> table, String tableAlias, BiConsumer, Children> consumer) {
String tabName;
if (table != null) {
- MPJLambdaWrapper tableWrapper = new MPJLambdaWrapper(null, clazz, SharedString.emptyString(),
- paramNameSeq, paramNameValuePairs, new MergeSegments(), new SharedString(this.paramAlias
- .getStringValue()), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString(),
- new TableList(), null, null, null, null, ifExists) {
- };
- tableWrapper.tableList.setAlias(ConfigProperties.tableAlias);
- tableWrapper.tableList.setRootClass(clazz);
-
+ MPJLambdaWrapper tableWrapper = fromInstance(clazz);
table.accept(tableWrapper);
if (StrUtils.isBlank(tableWrapper.getSqlSelect())) {
tableWrapper.selectAll();
diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java
index b105ee9..e951763 100644
--- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java
+++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java
@@ -3,7 +3,6 @@ package com.github.yulichang.wrapper;
import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
import com.baomidou.mybatisplus.core.conditions.SharedString;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
-import com.baomidou.mybatisplus.core.conditions.interfaces.Nested;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
import com.baomidou.mybatisplus.core.enums.SqlLike;
@@ -182,9 +181,9 @@ public abstract class JoinAbstractWrapper嵌套
+ * 泛型 Param 是具体需要运行函数的类(也是 wrapper 的子类)
+ *
+ * @author hubin miemie HCL
+ * @since 2017-05-26
+ */
+@SuppressWarnings("all")
+public interface Nested extends Serializable {
+
+ /**
+ * AND 嵌套
+ *
+ * 例: and(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param consumer 消费函数
+ * @return children
+ */
+ default Children and(Consumer consumer) {
+ return and(true, consumer);
+ }
+
+ /**
+ * AND 嵌套
+ *
+ * 例: and(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param condition 执行条件
+ * @param consumer 消费函数
+ * @return children
+ */
+ Children and(boolean condition, Consumer consumer);
+
+ /**
+ * OR 嵌套
+ *
+ * 例: or(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param consumer 消费函数
+ * @return children
+ */
+ default Children or(Consumer consumer) {
+ return or(true, consumer);
+ }
+
+ /**
+ * OR 嵌套
+ *
+ * 例: or(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param condition 执行条件
+ * @param consumer 消费函数
+ * @return children
+ */
+ Children or(boolean condition, Consumer consumer);
+
+ /**
+ * 正常嵌套 不带 AND 或者 OR
+ *
+ * 例: nested(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param consumer 消费函数
+ * @return children
+ */
+ default Children nested(Consumer consumer) {
+ return nested(true, consumer);
+ }
+
+ /**
+ * 正常嵌套 不带 AND 或者 OR
+ *
+ * 例: nested(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param condition 执行条件
+ * @param consumer 消费函数
+ * @return children
+ */
+ Children nested(boolean condition, Consumer consumer);
+
+ /**
+ * not嵌套
+ *
+ * 例: not(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param consumer 消费函数
+ * @return children
+ */
+ default Children not(Consumer consumer) {
+ return not(true, consumer);
+ }
+
+ /**
+ * not嵌套
+ *
+ * 例: not(i -> i.eq("name", "李白").ne("status", "活着"))
+ *
+ *
+ * @param condition 执行条件
+ * @param consumer 消费函数
+ * @return children
+ */
+ Children not(boolean condition, Consumer consumer);
+}