From f8ca459519766390dd1fee35cf1488b0d44d9eb4 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Tue, 22 Nov 2022 16:21:23 +0800 Subject: [PATCH] =?UTF-8?q?LambdaWrapper=E5=89=AF=E8=A1=A8=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MybatisPlusJoinAutoConfiguration.java | 2 + .../MybatisPlusJoinProperties.java | 7 +- ...itional-spring-configuration-metadata.json | 6 + .../yulichang/config/ConfigProperties.java | 9 ++ .../yulichang/interceptor/MPJInterceptor.java | 2 +- .../yulichang/method/MPJBaseMethod.java | 7 ++ .../yulichang/toolkit/LogicInfoUtils.java | 40 +++++++ .../yulichang/toolkit/MPJReflectionKit.java | 3 +- .../yulichang/wrapper/MPJLambdaWrapper.java | 54 +++++---- .../wrapper/interfaces/LambdaJoin.java | 93 +++------------ .../yulichang/wrapper/interfaces/Query.java | 110 +----------------- 11 files changed, 121 insertions(+), 212 deletions(-) create mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java create mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/LogicInfoUtils.java diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java index e203d8b..c67983f 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.autoconfigure.MybatisPlusLanguageDriverAutoConfi import com.baomidou.mybatisplus.core.injector.AbstractSqlInjector; import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; import com.baomidou.mybatisplus.core.injector.ISqlInjector; +import com.github.yulichang.config.ConfigProperties; import com.github.yulichang.config.InterceptorConfig; import com.github.yulichang.injector.MPJSqlInjector; import com.github.yulichang.interceptor.MPJInterceptor; @@ -55,6 +56,7 @@ public class MybatisPlusJoinAutoConfiguration { public MybatisPlusJoinAutoConfiguration(MybatisPlusJoinProperties properties) { this.properties = properties; + ConfigProperties.subTableLogic = properties.getSubTableLogic(); } /** diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java index bb23df8..2b7228d 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinProperties.java @@ -18,5 +18,10 @@ public class MybatisPlusJoinProperties { /** * 打印banner */ - private Boolean banner = false; + private Boolean banner = true; + + /** + * 连表查询副表是否启用逻辑删除(前提是MP配置了逻辑删除) + */ + private Boolean subTableLogic = true; } diff --git a/mybatis-plus-join-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/mybatis-plus-join-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json index aa9ddcb..de6b922 100644 --- a/mybatis-plus-join-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/mybatis-plus-join-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -12,6 +12,12 @@ "defaultValue": true, "type": "java.lang.Boolean", "description": "打印 banner." + }, + { + "name": "mybatis-plus-join.sub-table-logic", + "defaultValue": true, + "type": "java.lang.Boolean", + "description": "连表查询副表是否启用逻辑删除(前提是MP配置了逻辑删除)." } ] } \ No newline at end of file diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java new file mode 100644 index 0000000..71eb06f --- /dev/null +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java @@ -0,0 +1,9 @@ +package com.github.yulichang.config; + +/** + * @author yulichang + * @since 2.0.0 + */ +public class ConfigProperties { + public static boolean subTableLogic = true; +} diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java index 831782a..63db8b4 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java @@ -315,7 +315,7 @@ public class MPJInterceptor implements Interceptor { pool.add(columnName); return columnName; } - columnName = "mpj_" + StringUtils.getTargetColumn(columnName); + columnName = "join_" + StringUtils.getTargetColumn(columnName); return getColumn(pool, columnName); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java index dae42c6..d1bfbd4 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/method/MPJBaseMethod.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils; +import com.github.yulichang.config.ConfigProperties; import com.github.yulichang.toolkit.Constant; import java.util.Objects; @@ -26,6 +27,9 @@ public interface MPJBaseMethod extends Constants { sqlScript = SqlScriptUtils.convertIf(sqlScript, String.format("%s != null", WRAPPER_ENTITY), true); sqlScript += NEWLINE; sqlScript += (NEWLINE + getLogicDeleteSql(table, true, true) + NEWLINE); + if (ConfigProperties.subTableLogic) { + sqlScript += (String.format("${%s.logicSql}", WRAPPER)); + } String normalSqlScript = SqlScriptUtils.convertIf(String.format("AND ${%s}", WRAPPER_SQLSEGMENT), String.format("%s != null and %s != '' and %s", WRAPPER_SQLSEGMENT, WRAPPER_SQLSEGMENT, WRAPPER_NONEMPTYOFNORMAL), true); normalSqlScript += NEWLINE; normalSqlScript += SqlScriptUtils.convertIf(String.format(" ${%s}", WRAPPER_SQLSEGMENT), String.format("%s != null and %s != '' and %s", WRAPPER_SQLSEGMENT, WRAPPER_SQLSEGMENT, WRAPPER_EMPTYOFNORMAL), true); @@ -37,6 +41,9 @@ public interface MPJBaseMethod extends Constants { String sqlScript = getAllSqlWhere(table, false, true, WRAPPER_ENTITY_DOT); sqlScript = SqlScriptUtils.convertIf(sqlScript, String.format("%s != null", WRAPPER_ENTITY), true); sqlScript += NEWLINE; + if (ConfigProperties.subTableLogic) { + sqlScript += String.format("${%s.logicSql}", WRAPPER); + } sqlScript += SqlScriptUtils.convertIf(String.format("${%s}", WRAPPER_SQLSEGMENT), String.format("%s != null and %s != '' and %s", WRAPPER_SQLSEGMENT, WRAPPER_SQLSEGMENT, WRAPPER_NONEMPTYOFWHERE), true); sqlScript = SqlScriptUtils.convertWhere(sqlScript) + NEWLINE; sqlScript += SqlScriptUtils.convertIf(String.format(" ${%s}", WRAPPER_SQLSEGMENT), String.format("%s != null and %s != '' and %s", WRAPPER_SQLSEGMENT, WRAPPER_SQLSEGMENT, WRAPPER_EMPTYOFWHERE), true); diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/LogicInfoUtils.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/LogicInfoUtils.java new file mode 100644 index 0000000..c0768e2 --- /dev/null +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/LogicInfoUtils.java @@ -0,0 +1,40 @@ +package com.github.yulichang.toolkit; + +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.core.toolkit.Assert; +import com.baomidou.mybatisplus.core.toolkit.Constants; + +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 逻辑删除信息类 + * + * @author yulichang + * @since 2.0.0 + */ +public class LogicInfoUtils implements Constants { + + private static final Map, String> LOGIC_CACHE = new ConcurrentHashMap<>(); + + + @SuppressWarnings("ConstantConditions") + public static String getLogicInfo(int tableIndex, Class clazz) { + String logicStr = LOGIC_CACHE.get(clazz); + if (Objects.nonNull(logicStr)) { + return logicStr; + } + TableInfo tableInfo = TableInfoHelper.getTableInfo(clazz); + Assert.notNull(tableInfo, "%s 不是数据库实体或没有注册到mybatis plus中", clazz.getName()); + final String value = tableInfo.getLogicDeleteFieldInfo().getLogicNotDeleteValue(); + if (NULL.equalsIgnoreCase(value)) { + logicStr = Constant.TABLE_ALIAS + tableIndex + DOT + tableInfo.getLogicDeleteFieldInfo().getColumn() + " IS NULL"; + } else { + logicStr = Constant.TABLE_ALIAS + tableIndex + DOT + tableInfo.getLogicDeleteFieldInfo().getColumn() + EQUALS + String.format(tableInfo.getLogicDeleteFieldInfo().isCharSequence() ? "'%s'" : "%s", value); + } + LOGIC_CACHE.put(clazz, logicStr); + return logicStr; + } +} diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/MPJReflectionKit.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/MPJReflectionKit.java index 23f3d14..18e55f2 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/MPJReflectionKit.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/MPJReflectionKit.java @@ -19,6 +19,7 @@ public final class MPJReflectionKit { private static final Map, Map> CLASS_FIELD_CACHE = new ConcurrentHashMap<>(); + private static final Map EMPTY_MAP = new HashMap<>(); /** * Collection字段的泛型 @@ -48,7 +49,7 @@ public final class MPJReflectionKit { */ public static Map getFieldMap(Class clazz) { if (clazz == null) { - return new HashMap<>(); + return EMPTY_MAP; } Map fieldMap = CLASS_FIELD_CACHE.get(clazz); if (fieldMap != null) { 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 51e47cf..554f66c 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 @@ -5,11 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments; import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; -import com.baomidou.mybatisplus.core.toolkit.ArrayUtils; -import com.baomidou.mybatisplus.core.toolkit.Assert; -import com.baomidou.mybatisplus.core.toolkit.StringPool; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.*; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; +import com.github.yulichang.config.ConfigProperties; +import com.github.yulichang.toolkit.LambdaUtils; +import com.github.yulichang.toolkit.ReflectionKit; import com.github.yulichang.toolkit.*; import com.github.yulichang.toolkit.support.ColumnCache; import com.github.yulichang.toolkit.support.SelectColumn; @@ -33,8 +33,6 @@ import java.util.stream.Collectors; /** * 参考 {@link com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper} * Lambda 语法使用 Wrapper - *

- * 推荐使用 MPJWrappers.lambdaJoin();构造 * * @author yulichang * @see MPJWrappers @@ -301,20 +299,16 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper MPJLambdaWrapper selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, String alias) { - if (condition) { - ColumnCache cache = getCache(column); - selectColumns.add(SelectColumn.of(LambdaUtils.getEntityClass(column), cache.getColumn(), - cache.getTableFieldInfo(), alias, alias, cache.getKeyType(), false, funcEnum)); - } + public MPJLambdaWrapper selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias) { + ColumnCache cache = getCache(column); + selectColumns.add(SelectColumn.of(LambdaUtils.getEntityClass(column), cache.getColumn(), + cache.getTableFieldInfo(), alias, alias, cache.getKeyType(), false, funcEnum)); return typedThis; } @Override - public MPJLambdaWrapper selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, String alias) { - if (condition) { - selectColumns.add(SelectColumn.of(null, column.toString(), null, alias, alias, null, false, funcEnum)); - } + public MPJLambdaWrapper selectFunc(BaseFuncEnum funcEnum, Object column, String alias) { + selectColumns.add(SelectColumn.of(null, column.toString(), null, alias, alias, null, false, funcEnum)); return typedThis; } @@ -335,7 +329,7 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper { String str = Constant.TABLE_ALIAS + getDefault(subTable.get(i.getClazz())) + StringPool.DOT + i.getColumnName(); return (i.getFuncEnum() == null ? str : String.format(i.getFuncEnum().getSql(), str)) + @@ -399,14 +393,26 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper MPJLambdaWrapper join(String keyWord, boolean condition, Class clazz, OnFunction function) { - if (condition) { - MPJLambdaWrapper apply = function.apply(instance(keyWord, clazz)); - onWrappers.add(apply); - subTable.put(clazz, tableIndex); - tableIndex++; + /** + * 副表部分逻辑删除支持 + */ + public String getLogicSql() { + if (ConfigProperties.subTableLogic) { + if (CollectionUtils.isEmpty(subTable)) { + return StringPool.EMPTY; + } + return "AND " + subTable.entrySet().stream().map(entry -> + LogicInfoUtils.getLogicInfo(entry.getValue(), entry.getKey())).collect(Collectors.joining(" AND ")); } + return StringPool.EMPTY; + } + + @Override + public MPJLambdaWrapper join(String keyWord, Class clazz, OnFunction function) { + MPJLambdaWrapper apply = function.apply(instance(keyWord, clazz)); + subTable.put(clazz, tableIndex); + onWrappers.add(apply); + tableIndex++; return typedThis; } } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java index b15397f..a6c56c8 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java @@ -19,7 +19,7 @@ public interface LambdaJoin extends MPJBaseJoin { * @param right 条件 */ default Children leftJoin(Class clazz, SFunction left, SFunction right) { - return leftJoin(true, clazz, left, right); + return leftJoin(clazz, on -> on.eq(left, right)); } /** @@ -27,129 +27,62 @@ public interface LambdaJoin extends MPJBaseJoin { *

* 例 leftJoin(UserDO.class, on -> on.eq(UserDO::getId,UserAddressDO::getUserId).le().gt()...) * - * @param clazz 关联的实体类 + * @param clazz 关联实体类 * @param function 条件 */ default Children leftJoin(Class clazz, OnFunction function) { - return leftJoin(true, clazz, function); - } - - /** - * left join - * - * @param condition 是否执行 - * @param clazz 关联的实体类 - * @param left 条件 - * @param right 条件 - */ - default Children leftJoin(boolean condition, Class clazz, SFunction left, SFunction right) { - return leftJoin(condition, clazz, on -> on.eq(left, right)); - } - - /** - * left join - *

- * 例 leftJoin(UserDO.class, on -> on.eq(UserDO::getId,UserAddressDO::getUserId).le().gt()...) - * - * @param condition 是否执行 - * @param clazz 关联实体类 - * @param function 条件 - */ - default Children leftJoin(boolean condition, Class clazz, OnFunction function) { - return join(Constant.LEFT_JOIN, condition, clazz, function); + return join(Constant.LEFT_JOIN, clazz, function); } /** * ignore 参考 left join */ default Children rightJoin(Class clazz, SFunction left, SFunction right) { - return rightJoin(true, clazz, left, right); + return rightJoin(clazz, on -> on.eq(left, right)); } /** * ignore 参考 left join */ default Children rightJoin(Class clazz, OnFunction function) { - return rightJoin(true, clazz, function); - } - - /** - * ignore 参考 left join - */ - default Children rightJoin(boolean condition, Class clazz, SFunction left, SFunction right) { - return rightJoin(condition, clazz, on -> on.eq(left, right)); - } - - /** - * ignore 参考 left join - */ - default Children rightJoin(boolean condition, Class clazz, OnFunction function) { - return join(Constant.RIGHT_JOIN, condition, clazz, function); + return join(Constant.RIGHT_JOIN, clazz, function); } /** * ignore 参考 left join */ default Children innerJoin(Class clazz, SFunction left, SFunction right) { - return innerJoin(true, clazz, left, right); + return innerJoin(clazz, on -> on.eq(left, right)); } /** * ignore 参考 left join */ default Children innerJoin(Class clazz, OnFunction function) { - return innerJoin(true, clazz, function); + return join(Constant.INNER_JOIN, clazz, function); } - /** - * ignore 参考 left join - */ - default Children innerJoin(boolean condition, Class clazz, SFunction left, SFunction right) { - return innerJoin(condition, clazz, on -> on.eq(left, right)); - } - - /** - * ignore 参考 left join - */ - default Children innerJoin(boolean condition, Class clazz, OnFunction function) { - return join(Constant.INNER_JOIN, condition, clazz, function); - } /** * ignore 参考 left join */ default Children fullJoin(Class clazz, SFunction left, SFunction right) { - return fullJoin(true, clazz, left, right); + return fullJoin(clazz, on -> on.eq(left, right)); } /** * ignore 参考 left join */ default Children fullJoin(Class clazz, OnFunction function) { - return fullJoin(true, clazz, function); - } - - /** - * ignore 参考 left join - */ - default Children fullJoin(boolean condition, Class clazz, SFunction left, SFunction right) { - return fullJoin(condition, clazz, on -> on.eq(left, right)); - } - - /** - * ignore 参考 left join - */ - default Children fullJoin(boolean condition, Class clazz, OnFunction function) { - return join(Constant.FULL_JOIN, condition, clazz, function); + return join(Constant.FULL_JOIN, clazz, function); } /** * 查询基类 可以直接调用此方法实现以上所有功能 * - * @param keyWord 连表关键字 - * @param condition 是否执行 - * @param clazz 连表实体类 - * @param function 关联条件 + * @param keyWord 连表关键字 + * @param clazz 连表实体类 + * @param function 关联条件 */ - Children join(String keyWord, boolean condition, Class clazz, OnFunction function); + Children join(String keyWord, Class clazz, OnFunction function); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java index 815c269..63b1c55 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java @@ -75,40 +75,20 @@ public interface Query extends Serializable { * @param column 函数作用的字段 * @param alias 别名 */ - Children selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, String alias); + Children selectFunc(BaseFuncEnum funcEnum, Object column, String alias); - Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, String alias); - - default Children selectFunc(BaseFuncEnum funcEnum, Object column, String alias) { - return selectFunc(true, funcEnum, column, alias); - } - - default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias) { - return selectFunc(true, funcEnum, column, alias); - } + Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias); default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, SFunction alias) { - return selectFunc(true, funcEnum, column, LambdaUtils.getName(alias)); + return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); } default Children selectFunc(BaseFuncEnum funcEnum, SFunction column) { - return selectFunc(true, funcEnum, column, column); + return selectFunc(funcEnum, column, column); } default Children selectFunc(BaseFuncEnum funcEnum, Object column, SFunction alias) { - return selectFunc(true, funcEnum, column, LambdaUtils.getName(alias)); - } - - default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, SFunction alias) { - return selectFunc(condition, funcEnum, column, LambdaUtils.getName(alias)); - } - - default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column) { - return selectFunc(condition, funcEnum, column, column); - } - - default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, SFunction alias) { - return selectFunc(condition, funcEnum, column, LambdaUtils.getName(alias)); + return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); } /** @@ -138,18 +118,6 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.SUM, column, alias); } - default Children selectSum(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.SUM, column); - } - - default Children selectSum(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.SUM, column, alias); - } - - default Children selectSum(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.SUM, column, alias); - } - /** * COUNT() */ @@ -173,26 +141,6 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.COUNT, column, alias); } - default Children selectCount(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.COUNT, column); - } - - default Children selectCount(boolean condition, Object column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); - } - - default Children selectCount(boolean condition, Object column, String alias) { - return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); - } - - default Children selectCount(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); - } - - default Children selectCount(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); - } - /** * MAX() */ @@ -208,18 +156,6 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.MAX, column, alias); } - default Children selectMax(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.MAX, column); - } - - default Children selectMax(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.MAX, column, alias); - } - - default Children selectMax(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.MAX, column, alias); - } - /** * MIN() */ @@ -235,18 +171,6 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.MIN, column, alias); } - default Children selectMin(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.MIN, column); - } - - default Children selectMin(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.MIN, column, alias); - } - - default Children selectMin(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.MIN, column, alias); - } - /** * MIN() */ @@ -262,18 +186,6 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.AVG, column, alias); } - default Children selectAvg(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.AVG, column); - } - - default Children selectAvg(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.AVG, column, alias); - } - - default Children selectAvg(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.AVG, column, alias); - } - /** * LEN() */ @@ -288,16 +200,4 @@ public interface Query extends Serializable { default Children selectLen(SFunction column, String alias) { return selectFunc(DefaultFuncEnum.LEN, column, alias); } - - default Children selectLen(boolean condition, SFunction column) { - return selectFunc(condition, DefaultFuncEnum.LEN, column); - } - - default Children selectLen(boolean condition, SFunction column, SFunction alias) { - return selectFunc(condition, DefaultFuncEnum.LEN, column, alias); - } - - default Children selectLen(boolean condition, SFunction column, String alias) { - return selectFunc(condition, DefaultFuncEnum.LEN, column, alias); - } }