From ef3301e7eb3b25dad284763a5de0125454bc3013 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Mon, 25 Dec 2023 00:57:04 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0notLikeLeft=E5=92=8CnotLikeRi?= =?UTF-8?q?ght?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yulichang/kt/KtAbstractWrapper.java | 10 ++++ .../yulichang/kt/interfaces/Compare.java | 47 +++++++++++++++++++ .../kt/interfaces/CompareIfAbsent.java | 16 +++++++ .../yulichang/wrapper/DeleteJoinWrapper.java | 8 +++- ...er.java => JoinAbstractLambdaWrapper.java} | 18 +++---- ...tWrapper.java => JoinAbstractWrapper.java} | 22 ++++++++- .../yulichang/wrapper/MPJLambdaWrapper.java | 2 +- .../yulichang/wrapper/UpdateJoinWrapper.java | 2 +- .../yulichang/wrapper/interfaces/Compare.java | 44 +++++++++++++++++ .../wrapper/interfaces/CompareIfAbsent.java | 16 +++++++ .../wrapper/interfaces/CompareStr.java | 35 ++++++++++++++ .../interfaces/CompareStrIfAbsent.java | 8 ++++ .../wrapper/interfaces/QueryJoin.java | 42 ++++++++--------- .../yulichang/test/join/m/IfAbsentTest.java | 6 +++ .../test/join/m/NotLikeLeftRightTest.java | 40 ++++++++++++++++ 15 files changed, 281 insertions(+), 35 deletions(-) rename mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/{MPJAbstractLambdaWrapper.java => JoinAbstractLambdaWrapper.java} (96%) rename mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/{MPJAbstractWrapper.java => JoinAbstractWrapper.java} (97%) create mode 100644 mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/NotLikeLeftRightTest.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 981aec3..cc4211e 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 @@ -252,11 +252,21 @@ public abstract class KtAbstractWrapper column, Object val) { + return likeValue(condition, NOT_LIKE, alias, column, val, SqlLike.LEFT); + } + @Override public Children likeRight(boolean condition, String alias, KProperty column, Object val) { return likeValue(condition, LIKE, alias, column, val, SqlLike.RIGHT); } + @Override + public Children notLikeRight(boolean condition, String alias, KProperty column, Object val) { + return likeValue(condition, NOT_LIKE, alias, column, val, SqlLike.RIGHT); + } + @Override public Children between(boolean condition, String alias, KProperty column, Object val1, Object val2) { return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), BETWEEN, diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Compare.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Compare.java index b995c71..4726244 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Compare.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/Compare.java @@ -287,6 +287,28 @@ public interface Compare extends Serializable { */ Children likeLeft(boolean condition, String alias, KProperty column, Object val); + default Children notLikeLeft(KProperty column, Object val) { + return notLikeLeft(true, null, column, val); + } + + default Children notLikeLeft(String alias, KProperty column, Object val) { + return notLikeLeft(true, alias, column, val); + } + + default Children notLikeLeft(boolean condition, KProperty column, Object val) { + return notLikeLeft(condition, null, column, val); + } + + /** + * LIKE '%值' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeLeft(boolean condition, String alias, KProperty column, Object val); + default Children likeRight(KProperty column, Object val) { return likeRight(true, null, column, val); @@ -310,4 +332,29 @@ public interface Compare extends Serializable { * @return children */ Children likeRight(boolean condition, String alias, KProperty column, Object val); + + + + default Children notLikeRight(KProperty column, Object val) { + return notLikeRight(true, null, column, val); + } + + default Children notLikeRight(String alias, KProperty column, Object val) { + return notLikeRight(true, alias, column, val); + } + + default Children notLikeRight(boolean condition, KProperty column, Object val) { + return notLikeRight(condition, null, column, val); + } + + + /** + * LIKE '值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeRight(boolean condition, String alias, KProperty column, Object val); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/CompareIfAbsent.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/CompareIfAbsent.java index f379a63..71ae0fe 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/CompareIfAbsent.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/kt/interfaces/CompareIfAbsent.java @@ -89,6 +89,14 @@ public interface CompareIfAbsent extends Compare { return likeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_LEFT), alias, column, val); } + default Children notLikeLeftIfAbsent(KProperty column, Object val) { + return notLikeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_LEFT), null, column, val); + } + + default Children notLikeLeftIfAbsent(String alias, KProperty column, Object val) { + return notLikeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_LEFT), alias, column, val); + } + default Children likeRightIfAbsent(KProperty column, Object val) { return likeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_RIGHT), null, column, val); } @@ -96,4 +104,12 @@ public interface CompareIfAbsent extends Compare { default Children likeRightIfAbsent(String alias, KProperty column, Object val) { return likeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_RIGHT), alias, column, val); } + + default Children notLikeRightIfAbsent(KProperty column, Object val) { + return notLikeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_RIGHT), null, column, val); + } + + default Children notLikeRightIfAbsent(String alias, KProperty column, Object val) { + return notLikeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_RIGHT), alias, column, val); + } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java index ff4915b..887c7d9 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/DeleteJoinWrapper.java @@ -21,7 +21,7 @@ import java.util.stream.Collectors; * @author yulichang * @since 1.4.5 */ -public class DeleteJoinWrapper extends MPJAbstractLambdaWrapper> { +public class DeleteJoinWrapper extends JoinAbstractLambdaWrapper> { /** * 删除表 @@ -100,6 +100,7 @@ public class DeleteJoinWrapper extends MPJAbstractLambdaWrapper extends MPJAbstractLambdaWrapper delete(Class... deleteClass) { Class entityClass = getEntityClass(); Assert.notNull(entityClass, "缺少主表类型, 请使用 new MPJLambdaWrapper<>(主表.class) 或 JoinWrappers.lambda(主表.class) 构造方法"); @@ -164,6 +166,7 @@ public class DeleteJoinWrapper extends MPJAbstractLambdaWrapper> classList) { Class entityClass = getEntityClass(); TableInfo tableInfo = TableHelper.get(entityClass); @@ -185,7 +188,8 @@ public class DeleteJoinWrapper extends MPJAbstractLambdaWrapper entityClass = getEntityClass(); Assert.notNull(entityClass, "缺少主表类型, 请使用 new MPJLambdaWrapper<>(主表.class) 或 JoinWrappers.lambda(主表.class) 构造方法"); 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/JoinAbstractLambdaWrapper.java similarity index 96% rename from mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java rename to mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractLambdaWrapper.java index c0fc4fc..0a2970d 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/JoinAbstractLambdaWrapper.java @@ -38,8 +38,8 @@ import static java.util.stream.Collectors.joining; * @author yulichang */ @SuppressWarnings({"DuplicatedCode", "unused"}) -public abstract class MPJAbstractLambdaWrapper> - extends MPJAbstractWrapper implements QueryJoin { +public abstract class JoinAbstractLambdaWrapper> + extends JoinAbstractWrapper implements QueryJoin { /** * 主表别名 @@ -101,14 +101,14 @@ public abstract class MPJAbstractLambdaWrapper clazz) { + public JoinAbstractLambdaWrapper(Class clazz) { initNeed(); setEntityClass(clazz); tableList.setRootClass(clazz); @@ -119,7 +119,7 @@ public abstract class MPJAbstractLambdaWrapper clazz, String alias) { + public JoinAbstractLambdaWrapper(Class clazz, String alias) { this.alias = alias; setEntityClass(clazz); initNeed(); @@ -156,7 +156,7 @@ public abstract class MPJAbstractLambdaWrapper Children join(String keyWord, Class clazz, String tableAlias, BiConsumer, Children> consumer) { + public Children join(String keyWord, Class clazz, String tableAlias, BiConsumer, Children> consumer) { Integer oldIndex = this.getIndex(); int newIndex = tableIndex; TableInfo info = TableHelper.get(clazz); diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java similarity index 97% rename from mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java rename to mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java index cd22de1..7e97c4d 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/JoinAbstractWrapper.java @@ -41,7 +41,7 @@ import static java.util.stream.Collectors.joining; * @author yulichang */ @SuppressWarnings({"unchecked", "unused", "DuplicatedCode"}) -public abstract class MPJAbstractWrapper> extends Wrapper +public abstract class JoinAbstractWrapper> extends Wrapper implements CompareIfAbsent, Nested, Join, Func, OnCompare, CompareStrIfAbsent, FuncStr { @@ -272,11 +272,21 @@ public abstract class MPJAbstractWrapper Children notLikeLeft(boolean condition, String alias, SFunction column, Object val) { + return likeValue(condition, NOT_LIKE, alias, column, val, SqlLike.LEFT); + } + @Override public Children likeRight(boolean condition, String alias, SFunction column, Object val) { return likeValue(condition, LIKE, alias, column, val, SqlLike.RIGHT); } + @Override + public Children notLikeRight(boolean condition, String alias, SFunction column, Object val) { + return likeValue(condition, NOT_LIKE, alias, column, val, SqlLike.RIGHT); + } + @Override public Children between(boolean condition, String alias, SFunction column, Object val1, Object val2) { return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), BETWEEN, @@ -1002,11 +1012,21 @@ public abstract class MPJAbstractWrapper appendSqlSegments(columnToSqlSegment(column), BETWEEN, diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java index dcf5c84..488be2e 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java @@ -31,7 +31,7 @@ import java.util.stream.Collectors; * @author yulichang */ @SuppressWarnings({"unused", "DuplicatedCode"}) -public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper> implements +public class MPJLambdaWrapper extends JoinAbstractLambdaWrapper> implements Query>, QueryLabel>, Chain, SelectWrapper> { /** diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java index 84628c3..405385d 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/UpdateJoinWrapper.java @@ -28,7 +28,7 @@ import java.util.stream.Collectors; * @since 1.4.5 */ @SuppressWarnings("unused") -public class UpdateJoinWrapper extends MPJAbstractLambdaWrapper> +public class UpdateJoinWrapper extends JoinAbstractLambdaWrapper> implements Update> { /** * SQL 更新字段内容,例如:name='1', age=2 diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Compare.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Compare.java index 7b76b5a..d514904 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Compare.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Compare.java @@ -305,6 +305,28 @@ public interface Compare extends Serializable { */ Children likeLeft(boolean condition, String alias, SFunction column, Object val); + default Children notLikeLeft(SFunction column, Object val) { + return notLikeLeft(true, null, column, val); + } + + default Children notLikeLeft(String alias, SFunction column, Object val) { + return notLikeLeft(true, alias, column, val); + } + + default Children notLikeLeft(boolean condition, SFunction column, Object val) { + return notLikeLeft(condition, null, column, val); + } + + /** + * LIKE '%值' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeLeft(boolean condition, String alias, SFunction column, Object val); + default Children likeRight(SFunction column, Object val) { return likeRight(true, null, column, val); } @@ -326,4 +348,26 @@ public interface Compare extends Serializable { * @return children */ Children likeRight(boolean condition, String alias, SFunction column, Object val); + + default Children notLikeRight(SFunction column, Object val) { + return notLikeRight(true, null, column, val); + } + + default Children notLikeRight(String alias, SFunction column, Object val) { + return notLikeRight(true, alias, column, val); + } + + default Children notLikeRight(boolean condition, SFunction column, Object val) { + return notLikeRight(condition, null, column, val); + } + + /** + * LIKE '值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeRight(boolean condition, String alias, SFunction column, Object val); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareIfAbsent.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareIfAbsent.java index 2ac6ca4..51582cc 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareIfAbsent.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareIfAbsent.java @@ -88,6 +88,14 @@ public interface CompareIfAbsent extends Compare { return likeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_LEFT), alias, column, val); } + default Children notLikeLeftIfAbsent(SFunction column, Object val) { + return notLikeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_LEFT), null, column, val); + } + + default Children notLikeLeftIfAbsent(String alias, SFunction column, Object val) { + return notLikeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_LEFT), alias, column, val); + } + default Children likeRightIfAbsent(SFunction column, Object val) { return likeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_RIGHT), null, column, val); } @@ -95,4 +103,12 @@ public interface CompareIfAbsent extends Compare { default Children likeRightIfAbsent(String alias, SFunction column, Object val) { return likeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_RIGHT), alias, column, val); } + + default Children notLikeRightIfAbsent(SFunction column, Object val) { + return notLikeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_RIGHT), null, column, val); + } + + default Children notLikeRightIfAbsent(String alias, SFunction column, Object val) { + return notLikeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_RIGHT), alias, column, val); + } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStr.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStr.java index c70f917..e428555 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStr.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStr.java @@ -265,6 +265,23 @@ public interface CompareStr extends Serializable { */ Children likeLeft(boolean condition, R column, Object val); + /** + * ignore + */ + default Children notLikeLeft(R column, Object val) { + return notLikeLeft(true, column, val); + } + + /** + * LIKE '%值' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeLeft(boolean condition, R column, Object val); + /** * ignore */ @@ -281,4 +298,22 @@ public interface CompareStr extends Serializable { * @return children */ Children likeRight(boolean condition, R column, Object val); + + + /** + * ignore + */ + default Children notLikeRight(R column, Object val) { + return notLikeRight(true, column, val); + } + + /** + * LIKE '值%' + * + * @param condition 执行条件 + * @param column 字段 + * @param val 值 + * @return children + */ + Children notLikeRight(boolean condition, R column, Object val); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStrIfAbsent.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStrIfAbsent.java index aede362..a58520d 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStrIfAbsent.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/CompareStrIfAbsent.java @@ -54,4 +54,12 @@ public interface CompareStrIfAbsent extends CompareStr default Children likeRightIfAbsent(R column, Object val) { return likeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.LIKE_RIGHT), column, val); } + + default Children notLikeLeftIfAbsent(R column, Object val) { + return notLikeLeft(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_LEFT), column, val); + } + + default Children notLikeRightIfAbsent(R column, Object val) { + return notLikeRight(getIfAbsent().test(val, IfAbsentSqlKeyWordEnum.NOT_LIKE_RIGHT), column, val); + } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/QueryJoin.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/QueryJoin.java index ddeece3..09bb0ad 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/QueryJoin.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/QueryJoin.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.query.interfaces.StringJoin; import com.github.yulichang.toolkit.Constant; -import com.github.yulichang.wrapper.MPJAbstractLambdaWrapper; +import com.github.yulichang.wrapper.JoinAbstractLambdaWrapper; import java.util.function.BiConsumer; @@ -45,7 +45,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param function 条件` */ - default Children leftJoin(Class clazz, WrapperFunction> function) { + default Children leftJoin(Class clazz, WrapperFunction> function) { return join(Constant.LEFT_JOIN, clazz, function); } @@ -68,7 +68,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param consumer 条件 */ - default Children leftJoin(Class clazz, BiConsumer, Children> consumer) { + default Children leftJoin(Class clazz, BiConsumer, Children> consumer) { return join(Constant.LEFT_JOIN, clazz, consumer); } @@ -103,7 +103,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param function 条件 */ - default Children leftJoin(Class clazz, String alias, WrapperFunction> function) { + default Children leftJoin(Class clazz, String alias, WrapperFunction> function) { return join(Constant.LEFT_JOIN, clazz, alias, function); } @@ -126,7 +126,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param consumer 条件 */ - default Children leftJoin(Class clazz, String alias, BiConsumer, Children> consumer) { + default Children leftJoin(Class clazz, String alias, BiConsumer, Children> consumer) { return join(Constant.LEFT_JOIN, clazz, alias, consumer); } @@ -148,7 +148,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children rightJoin(Class clazz, WrapperFunction> function) { + default Children rightJoin(Class clazz, WrapperFunction> function) { return join(Constant.RIGHT_JOIN, clazz, function); } @@ -162,7 +162,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children rightJoin(Class clazz, BiConsumer, Children> consumer) { + default Children rightJoin(Class clazz, BiConsumer, Children> consumer) { return join(Constant.RIGHT_JOIN, clazz, consumer); } @@ -176,7 +176,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children rightJoin(Class clazz, String alias, WrapperFunction> function) { + default Children rightJoin(Class clazz, String alias, WrapperFunction> function) { return join(Constant.RIGHT_JOIN, clazz, alias, function); } @@ -190,7 +190,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children rightJoin(Class clazz, String alias, BiConsumer, Children> consumer) { + default Children rightJoin(Class clazz, String alias, BiConsumer, Children> consumer) { return join(Constant.RIGHT_JOIN, clazz, alias, consumer); } @@ -212,7 +212,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children innerJoin(Class clazz, WrapperFunction> function) { + default Children innerJoin(Class clazz, WrapperFunction> function) { return join(Constant.INNER_JOIN, clazz, function); } @@ -226,7 +226,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children innerJoin(Class clazz, BiConsumer, Children> consumer) { + default Children innerJoin(Class clazz, BiConsumer, Children> consumer) { return join(Constant.INNER_JOIN, clazz, consumer); } @@ -241,7 +241,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children innerJoin(Class clazz, String alias, WrapperFunction> function) { + default Children innerJoin(Class clazz, String alias, WrapperFunction> function) { return join(Constant.INNER_JOIN, clazz, alias, function); } @@ -255,7 +255,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children innerJoin(Class clazz, String alias, BiConsumer, Children> consumer) { + default Children innerJoin(Class clazz, String alias, BiConsumer, Children> consumer) { return join(Constant.INNER_JOIN, clazz, alias, consumer); } @@ -276,7 +276,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children fullJoin(Class clazz, WrapperFunction> function) { + default Children fullJoin(Class clazz, WrapperFunction> function) { return join(Constant.FULL_JOIN, clazz, function); } @@ -290,7 +290,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children fullJoin(Class clazz, BiConsumer, Children> consumer) { + default Children fullJoin(Class clazz, BiConsumer, Children> consumer) { return join(Constant.FULL_JOIN, clazz, consumer); } @@ -311,7 +311,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children fullJoin(Class clazz, String alias, WrapperFunction> function) { + default Children fullJoin(Class clazz, String alias, WrapperFunction> function) { return join(Constant.FULL_JOIN, clazz, alias, function); } @@ -325,7 +325,7 @@ public interface QueryJoin extends MPJBaseJoin, String /** * ignore 参考 left join */ - default Children fullJoin(Class clazz, String alias, BiConsumer, Children> consumer) { + default Children fullJoin(Class clazz, String alias, BiConsumer, Children> consumer) { return join(Constant.FULL_JOIN, clazz, alias, consumer); } @@ -366,7 +366,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param function 条件 */ - default Children join(String keyWord, Class clazz, WrapperFunction> function) { + default Children join(String keyWord, Class clazz, WrapperFunction> function) { return join(keyWord, clazz, (on, e) -> function.apply(on)); } @@ -422,7 +422,7 @@ public interface QueryJoin extends MPJBaseJoin, String * @param clazz 关联实体类 * @param function 条件 */ - default Children join(String keyWord, Class clazz, String alias, WrapperFunction> function) { + default Children join(String keyWord, Class clazz, String alias, WrapperFunction> function) { return join(keyWord, clazz, alias, (on, e) -> function.apply(on)); } @@ -443,12 +443,12 @@ public interface QueryJoin extends MPJBaseJoin, String /** * 内部使用, 不建议直接调用 */ - default Children join(String keyWord, Class clazz, BiConsumer, Children> consumer) { + default Children join(String keyWord, Class clazz, BiConsumer, Children> consumer) { return join(keyWord, clazz, null, consumer); } /** * 内部使用, 不建议直接调用 */ - Children join(String keyWord, Class clazz, String alias, BiConsumer, Children> consumer); + Children join(String keyWord, Class clazz, String alias, BiConsumer, Children> consumer); } diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java index 4b87971..f12eedd 100644 --- a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java +++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java @@ -27,12 +27,18 @@ public class IfAbsentTest { assert IfAbsentEnum.NOT_EMPTY.test(" "); assert IfAbsentEnum.NOT_EMPTY.test("\r"); assert IfAbsentEnum.NOT_EMPTY.test("a"); + assert IfAbsentEnum.NOT_EMPTY.test(1); + assert IfAbsentEnum.NOT_EMPTY.test(true); + assert IfAbsentEnum.NOT_EMPTY.test('A'); assert !IfAbsentEnum.NOT_BLANK.test("\t"); assert !IfAbsentEnum.NOT_BLANK.test(""); assert !IfAbsentEnum.NOT_BLANK.test(" "); assert !IfAbsentEnum.NOT_BLANK.test("\r"); assert IfAbsentEnum.NOT_BLANK.test("a"); + assert IfAbsentEnum.NOT_EMPTY.test(1); + assert IfAbsentEnum.NOT_EMPTY.test(true); + assert IfAbsentEnum.NOT_EMPTY.test('A'); 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 " + diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/NotLikeLeftRightTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/NotLikeLeftRightTest.java new file mode 100644 index 0000000..a396366 --- /dev/null +++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/NotLikeLeftRightTest.java @@ -0,0 +1,40 @@ +package com.github.yulichang.test.join.m; + +import com.github.yulichang.test.join.entity.UserDO; +import com.github.yulichang.test.util.Reset; +import com.github.yulichang.test.util.ThreadLocalUtils; +import com.github.yulichang.toolkit.JoinWrappers; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import java.util.List; + +@SpringBootTest +public class NotLikeLeftRightTest { + + @BeforeEach + void setUp() { + Reset.reset(); + } + + @Test + void notLikeLeftRight() { + 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.`name` NOT LIKE ?)"); + MPJLambdaWrapper wrapper = JoinWrappers.lambda(UserDO.class) + .selectAll(UserDO.class) + .notLikeLeft(UserDO::getName, "aa"); + List list = wrapper.list(); + list.forEach(System.out::println); + + 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.`name` NOT LIKE ?)"); + MPJLambdaWrapper wrapper1 = JoinWrappers.lambda(UserDO.class) + .selectAll(UserDO.class) + .notLikeRight(UserDO::getName, "aa"); + List list1 = wrapper1.list(); + list1.forEach(System.out::println); + } +}