diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryChain.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryChain.java deleted file mode 100644 index f555a7f7..00000000 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryChain.java +++ /dev/null @@ -1,573 +0,0 @@ -/* - * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com). - *

- * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - *

- * http://www.apache.org/licenses/LICENSE-2.0 - *

- * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.mybatisflex.core.query; - -import com.mybatisflex.core.constant.SqlOperator; -import com.mybatisflex.core.table.TableDef; -import com.mybatisflex.core.util.LambdaGetter; -import com.mybatisflex.core.util.LambdaUtil; - -import java.util.Map; -import java.util.function.Consumer; - -/** - * @author michael - */ -@SuppressWarnings({"unchecked", "rawtypes"}) -public class QueryChain extends QueryWrapper { - - @Override - public WithBuilder with(String name) { - return (WithBuilder) super.with(name); - } - - @Override - public WithBuilder with(String name, String... params) { - return (WithBuilder) super.with(name, params); - } - - @Override - public WithBuilder withRecursive(String name) { - return (WithBuilder) super.withRecursive(name); - } - - @Override - public WithBuilder withRecursive(String name, String... params) { - return (WithBuilder) super.withRecursive(name, params); - } - - @Override - public QueryChain select() { - super.select(); - return this; - } - - @Override - public QueryChain select(String... columns) { - super.select(columns); - return this; - } - - @Override - public QueryWrapper select(LambdaGetter... lambdaGetters) { - super.select(lambdaGetters); - return this; - } - - @Override - public QueryChain select(QueryColumn... queryColumns) { - super.select(queryColumns); - return this; - } - - @Override - public QueryChain select(QueryColumn[]... queryColumns) { - super.select(queryColumns); - return this; - } - - @Override - public QueryChain from(TableDef... tableDefs) { - super.from(tableDefs); - return this; - } - - @Override - public QueryChain from(Class... entityClasses) { - super.from(entityClasses); - return this; - } - - @Override - public QueryChain from(String... tables) { - super.from(tables); - return this; - } - - @Override - public QueryChain from(QueryTable... tables) { - super.from(tables); - return this; - } - - @Override - public QueryChain from(QueryWrapper queryWrapper) { - super.from(queryWrapper); - return this; - } - - @Override - public QueryChain as(String alias) { - super.as(alias); - return this; - } - - @Override - public QueryChain where(QueryCondition queryCondition) { - super.where(queryCondition); - return this; - } - - @Override - public QueryChain where(String sql) { - super.where(sql); - return this; - } - - @Override - public QueryChain where(String sql, Object... params) { - super.where(sql, params); - return this; - } - - @Override - public QueryChain where(Map whereConditions) { - super.where(whereConditions); - return this; - } - - @Override - public QueryChain where(Map whereConditions, Map operators) { - super.where(whereConditions, operators); - return this; - } - - @Override - public QueryConditionBuilder where(LambdaGetter fn) { - return new QueryConditionBuilder<>(this, LambdaUtil.getQueryColumn(fn), SqlConnector.AND); - } - - @Override - public QueryChain and(QueryCondition queryCondition) { - super.and(queryCondition); - return this; - } - - @Override - public QueryChain and(String sql) { - super.and(sql); - return this; - } - - @Override - public QueryChain and(String sql, Object... params) { - super.and(sql, params); - return this; - } - - @Override - public QueryConditionBuilder and(LambdaGetter fn) { - return new QueryConditionBuilder<>(this, LambdaUtil.getQueryColumn(fn), SqlConnector.AND); - } - - @Override - public QueryChain and(Consumer consumer) { - super.and(consumer); - return this; - } - - @Override - public QueryChain and(Map whereConditions) { - super.and(whereConditions); - return this; - } - - @Override - public QueryChain and(Map whereConditions, Map operators) { - super.and(whereConditions, operators); - return this; - } - - @Override - public QueryChain or(QueryCondition queryCondition) { - super.or(queryCondition); - return this; - } - - @Override - public QueryChain or(String sql) { - super.or(sql); - return this; - } - - @Override - public QueryChain or(String sql, Object... params) { - super.or(sql, params); - return this; - } - - @Override - public QueryConditionBuilder or(LambdaGetter fn) { - return new QueryConditionBuilder<>(this, LambdaUtil.getQueryColumn(fn), SqlConnector.OR); - } - - @Override - public QueryChain or(Consumer consumer) { - super.or(consumer); - return this; - } - - @Override - public QueryChain or(Map whereConditions) { - super.or(whereConditions); - return this; - } - - @Override - public QueryChain or(Map whereConditions, Map operators) { - super.or(whereConditions, operators); - return this; - } - - - @Override - public Joiner leftJoin(String table) { - return super.leftJoin(table); - } - - @Override - public Joiner leftJoin(String table, boolean when) { - return super.leftJoin(table, when); - } - - @Override - public Joiner leftJoin(Class entityClass) { - return super.leftJoin(entityClass); - } - - @Override - public Joiner leftJoin(Class entityClass, boolean when) { - return super.leftJoin(entityClass, when); - } - - @Override - public Joiner leftJoin(TableDef table) { - return super.leftJoin(table); - } - - @Override - public Joiner leftJoin(TableDef table, boolean when) { - return super.leftJoin(table, when); - } - - @Override - public Joiner leftJoin(QueryWrapper table) { - return super.leftJoin(table); - } - - @Override - public Joiner leftJoin(QueryWrapper table, boolean when) { - return super.leftJoin(table, when); - } - - @Override - public Joiner rightJoin(String table) { - return super.rightJoin(table); - } - - @Override - public Joiner rightJoin(String table, boolean when) { - return super.rightJoin(table, when); - } - - @Override - public Joiner rightJoin(Class entityClass) { - return super.rightJoin(entityClass); - } - - @Override - public Joiner rightJoin(Class entityClass, boolean when) { - return super.rightJoin(entityClass, when); - } - - @Override - public Joiner rightJoin(TableDef table) { - return super.rightJoin(table); - } - - @Override - public Joiner rightJoin(TableDef table, boolean when) { - return super.rightJoin(table, when); - } - - @Override - public Joiner rightJoin(QueryWrapper table) { - return super.rightJoin(table); - } - - @Override - public Joiner rightJoin(QueryWrapper table, boolean when) { - return super.rightJoin(table, when); - } - - @Override - public Joiner innerJoin(String table) { - return super.innerJoin(table); - } - - @Override - public Joiner innerJoin(String table, boolean when) { - return super.innerJoin(table, when); - } - - @Override - public Joiner innerJoin(Class entityClass) { - return super.innerJoin(entityClass); - } - - @Override - public Joiner innerJoin(Class entityClass, boolean when) { - return super.innerJoin(entityClass, when); - } - - @Override - public Joiner innerJoin(TableDef table) { - return super.innerJoin(table); - } - - @Override - public Joiner innerJoin(TableDef table, boolean when) { - return super.innerJoin(table, when); - } - - @Override - public Joiner innerJoin(QueryWrapper table) { - return super.innerJoin(table); - } - - @Override - public Joiner innerJoin(QueryWrapper table, boolean when) { - return super.innerJoin(table, when); - } - - @Override - public Joiner fullJoin(String table) { - return super.fullJoin(table); - } - - @Override - public Joiner fullJoin(String table, boolean when) { - return super.fullJoin(table, when); - } - - @Override - public Joiner fullJoin(Class entityClass) { - return super.fullJoin(entityClass); - } - - @Override - public Joiner fullJoin(Class entityClass, boolean when) { - return super.fullJoin(entityClass, when); - } - - @Override - public Joiner fullJoin(TableDef table) { - return super.fullJoin(table); - } - - @Override - public Joiner fullJoin(TableDef table, boolean when) { - return super.fullJoin(table, when); - } - - @Override - public Joiner fullJoin(QueryWrapper table) { - return super.fullJoin(table); - } - - @Override - public Joiner fullJoin(QueryWrapper table, boolean when) { - return super.fullJoin(table, when); - } - - @Override - public Joiner crossJoin(String table) { - return super.crossJoin(table); - } - - @Override - public Joiner crossJoin(String table, boolean when) { - return super.crossJoin(table, when); - } - - @Override - public Joiner crossJoin(Class entityClass) { - return super.crossJoin(entityClass); - } - - @Override - public Joiner crossJoin(Class entityClass, boolean when) { - return super.crossJoin(entityClass, when); - } - - @Override - public Joiner crossJoin(TableDef table) { - return super.crossJoin(table); - } - - @Override - public Joiner crossJoin(TableDef table, boolean when) { - return super.crossJoin(table, when); - } - - @Override - public Joiner crossJoin(QueryWrapper table) { - return super.crossJoin(table); - } - - @Override - public Joiner crossJoin(QueryWrapper table, boolean when) { - return super.crossJoin(table, when); - } - - @Override - public Joiner join(String table) { - return super.join(table); - } - - @Override - public Joiner join(String table, boolean when) { - return super.join(table, when); - } - - @Override - public Joiner join(Class entityClass) { - return super.join(entityClass); - } - - @Override - public Joiner join(Class entityClass, boolean when) { - return super.join(entityClass, when); - } - - @Override - public Joiner join(TableDef table) { - return super.join(table); - } - - @Override - public Joiner join(TableDef table, boolean when) { - return super.join(table, when); - } - - @Override - public Joiner join(QueryWrapper table) { - return super.join(table); - } - - @Override - public Joiner join(QueryWrapper table, boolean when) { - return super.join(table, when); - } - - @Override - public QueryChain union(QueryWrapper unionQuery) { - super.union(unionQuery); - return this; - } - - @Override - public QueryChain unionAll(QueryWrapper unionQuery) { - super.unionAll(unionQuery); - return this; - } - - @Override - public QueryChain forUpdate() { - super.forUpdate(); - return this; - } - - @Override - public QueryChain forUpdateNoWait() { - super.forUpdateNoWait(); - return this; - } - - @Override - public QueryChain groupBy(String name) { - super.groupBy(name); - return this; - } - - @Override - public QueryChain groupBy(String... names) { - super.groupBy(names); - return this; - } - - @Override - public QueryChain groupBy(QueryColumn column) { - super.groupBy(column); - return this; - } - - @Override - public QueryChain groupBy(QueryColumn... columns) { - super.groupBy(columns); - return this; - } - - @Override - public QueryChain having(QueryCondition queryCondition) { - super.having(queryCondition); - return this; - } - - @Override - public QueryChain orderBy(QueryOrderBy... orderBys) { - super.orderBy(orderBys); - return this; - } - - @Override - public QueryChain orderBy(String... orderBys) { - super.orderBy(orderBys); - return this; - } - - @Override - public QueryChain limit(Integer rows) { - super.limit(rows); - return this; - } - - @Override - public QueryChain offset(Integer offset) { - super.offset(offset); - return this; - } - - @Override - public QueryChain limit(Integer offset, Integer rows) { - super.limit(offset, rows); - return this; - } - - @Override - public QueryChain datasource(String datasource) { - super.datasource(datasource); - return this; - } - - @Override - public QueryChain hint(String hint) { - super.hint(hint); - return this; - } - - -} diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java new file mode 100644 index 00000000..84edc89c --- /dev/null +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/query/QueryWrapperAdapter.java @@ -0,0 +1,590 @@ +/* + * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.mybatisflex.core.query; + +import com.mybatisflex.core.constant.SqlOperator; +import com.mybatisflex.core.table.TableDef; +import com.mybatisflex.core.util.LambdaGetter; +import com.mybatisflex.core.util.LambdaUtil; + +import java.util.Map; +import java.util.function.Consumer; + +/** + * {@link QueryWrapper} 泛型适配器。 + * + * @param 返回值类型 + * @author michael + * @author suomm + */ +@SuppressWarnings({"unchecked", "rawtypes"}) +public class QueryWrapperAdapter> extends QueryWrapper { + + @Override + public WithBuilder with(String name) { + return super.with(name); + } + + @Override + public WithBuilder with(String name, String... params) { + return super.with(name, params); + } + + @Override + public WithBuilder withRecursive(String name) { + return super.withRecursive(name); + } + + @Override + public WithBuilder withRecursive(String name, String... params) { + return super.withRecursive(name, params); + } + + @Override + public R select() { + super.select(); + return (R) this; + } + + @Override + public R select(String... columns) { + super.select(columns); + return (R) this; + } + + @Override + public QueryWrapper select(LambdaGetter... lambdaGetters) { + super.select(lambdaGetters); + return this; + } + + @Override + public R select(QueryColumn... queryColumns) { + super.select(queryColumns); + return (R) this; + } + + @Override + public R select(QueryColumn[]... queryColumns) { + super.select(queryColumns); + return (R) this; + } + + @Override + public R from(TableDef... tableDefs) { + super.from(tableDefs); + return (R) this; + } + + @Override + public R from(Class... entityClasses) { + super.from(entityClasses); + return (R) this; + } + + @Override + public R from(String... tables) { + super.from(tables); + return (R) this; + } + + @Override + public R from(QueryTable... tables) { + super.from(tables); + return (R) this; + } + + @Override + public R from(QueryWrapper queryWrapper) { + super.from(queryWrapper); + return (R) this; + } + + @Override + public R as(String alias) { + super.as(alias); + return (R) this; + } + + @Override + public R where(QueryCondition queryCondition) { + super.where(queryCondition); + return (R) this; + } + + @Override + public R where(String sql) { + super.where(sql); + return (R) this; + } + + @Override + public R where(String sql, Object... params) { + super.where(sql, params); + return (R) this; + } + + @Override + public R where(Map whereConditions) { + super.where(whereConditions); + return (R) this; + } + + @Override + public R where(Map whereConditions, Map operators) { + super.where(whereConditions, operators); + return (R) this; + } + + @Override + public QueryConditionBuilder where(LambdaGetter fn) { + return new QueryConditionBuilder<>((R) this, LambdaUtil.getQueryColumn(fn), SqlConnector.AND); + } + + @Override + public R and(QueryCondition queryCondition) { + super.and(queryCondition); + return (R) this; + } + + @Override + public R and(String sql) { + super.and(sql); + return (R) this; + } + + @Override + public R and(String sql, Object... params) { + super.and(sql, params); + return (R) this; + } + + @Override + public QueryConditionBuilder and(LambdaGetter fn) { + return super.and(fn); + } + + @Override + public R and(Consumer consumer) { + super.and(consumer); + return (R) this; + } + + @Override + public R and(Map whereConditions) { + super.and(whereConditions); + return (R) this; + } + + @Override + public R and(Map whereConditions, Map operators) { + super.and(whereConditions, operators); + return (R) this; + } + + @Override + public QueryWrapper and(Map whereConditions, Map operators, SqlConnector innerConnector) { + return super.and(whereConditions, operators, innerConnector); + } + + @Override + public R or(QueryCondition queryCondition) { + super.or(queryCondition); + return (R) this; + } + + @Override + public R or(String sql) { + super.or(sql); + return (R) this; + } + + @Override + public R or(String sql, Object... params) { + super.or(sql, params); + return (R) this; + } + + @Override + public QueryConditionBuilder or(LambdaGetter fn) { + return super.or(fn); + } + + @Override + public R or(Consumer consumer) { + super.or(consumer); + return (R) this; + } + + @Override + public R or(Map whereConditions) { + super.or(whereConditions); + return (R) this; + } + + @Override + public R or(Map whereConditions, Map operators) { + super.or(whereConditions, operators); + return (R) this; + } + + @Override + public QueryWrapper or(Map whereConditions, Map operators, SqlConnector innerConnector) { + return super.or(whereConditions, operators, innerConnector); + } + + @Override + public Joiner leftJoin(String table) { + return super.leftJoin(table); + } + + @Override + public Joiner leftJoin(String table, boolean when) { + return super.leftJoin(table, when); + } + + @Override + public Joiner leftJoin(Class entityClass) { + return super.leftJoin(entityClass); + } + + @Override + public Joiner leftJoin(Class entityClass, boolean when) { + return super.leftJoin(entityClass, when); + } + + @Override + public Joiner leftJoin(TableDef table) { + return super.leftJoin(table); + } + + @Override + public Joiner leftJoin(TableDef table, boolean when) { + return super.leftJoin(table, when); + } + + @Override + public Joiner leftJoin(QueryWrapper table) { + return super.leftJoin(table); + } + + @Override + public Joiner leftJoin(QueryWrapper table, boolean when) { + return super.leftJoin(table, when); + } + + @Override + public Joiner rightJoin(String table) { + return super.rightJoin(table); + } + + @Override + public Joiner rightJoin(String table, boolean when) { + return super.rightJoin(table, when); + } + + @Override + public Joiner rightJoin(Class entityClass) { + return super.rightJoin(entityClass); + } + + @Override + public Joiner rightJoin(Class entityClass, boolean when) { + return super.rightJoin(entityClass, when); + } + + @Override + public Joiner rightJoin(TableDef table) { + return super.rightJoin(table); + } + + @Override + public Joiner rightJoin(TableDef table, boolean when) { + return super.rightJoin(table, when); + } + + @Override + public Joiner rightJoin(QueryWrapper table) { + return super.rightJoin(table); + } + + @Override + public Joiner rightJoin(QueryWrapper table, boolean when) { + return super.rightJoin(table, when); + } + + @Override + public Joiner innerJoin(String table) { + return super.innerJoin(table); + } + + @Override + public Joiner innerJoin(String table, boolean when) { + return super.innerJoin(table, when); + } + + @Override + public Joiner innerJoin(Class entityClass) { + return super.innerJoin(entityClass); + } + + @Override + public Joiner innerJoin(Class entityClass, boolean when) { + return super.innerJoin(entityClass, when); + } + + @Override + public Joiner innerJoin(TableDef table) { + return super.innerJoin(table); + } + + @Override + public Joiner innerJoin(TableDef table, boolean when) { + return super.innerJoin(table, when); + } + + @Override + public Joiner innerJoin(QueryWrapper table) { + return super.innerJoin(table); + } + + @Override + public Joiner innerJoin(QueryWrapper table, boolean when) { + return super.innerJoin(table, when); + } + + @Override + public Joiner fullJoin(String table) { + return super.fullJoin(table); + } + + @Override + public Joiner fullJoin(String table, boolean when) { + return super.fullJoin(table, when); + } + + @Override + public Joiner fullJoin(Class entityClass) { + return super.fullJoin(entityClass); + } + + @Override + public Joiner fullJoin(Class entityClass, boolean when) { + return super.fullJoin(entityClass, when); + } + + @Override + public Joiner fullJoin(TableDef table) { + return super.fullJoin(table); + } + + @Override + public Joiner fullJoin(TableDef table, boolean when) { + return super.fullJoin(table, when); + } + + @Override + public Joiner fullJoin(QueryWrapper table) { + return super.fullJoin(table); + } + + @Override + public Joiner fullJoin(QueryWrapper table, boolean when) { + return super.fullJoin(table, when); + } + + @Override + public Joiner crossJoin(String table) { + return super.crossJoin(table); + } + + @Override + public Joiner crossJoin(String table, boolean when) { + return super.crossJoin(table, when); + } + + @Override + public Joiner crossJoin(Class entityClass) { + return super.crossJoin(entityClass); + } + + @Override + public Joiner crossJoin(Class entityClass, boolean when) { + return super.crossJoin(entityClass, when); + } + + @Override + public Joiner crossJoin(TableDef table) { + return super.crossJoin(table); + } + + @Override + public Joiner crossJoin(TableDef table, boolean when) { + return super.crossJoin(table, when); + } + + @Override + public Joiner crossJoin(QueryWrapper table) { + return super.crossJoin(table); + } + + @Override + public Joiner crossJoin(QueryWrapper table, boolean when) { + return super.crossJoin(table, when); + } + + @Override + public Joiner join(String table) { + return super.join(table); + } + + @Override + public Joiner join(String table, boolean when) { + return super.join(table, when); + } + + @Override + public Joiner join(Class entityClass) { + return super.join(entityClass); + } + + @Override + public Joiner join(Class entityClass, boolean when) { + return super.join(entityClass, when); + } + + @Override + public Joiner join(TableDef table) { + return super.join(table); + } + + @Override + public Joiner join(TableDef table, boolean when) { + return super.join(table, when); + } + + @Override + public Joiner join(QueryWrapper table) { + return super.join(table); + } + + @Override + public Joiner join(QueryWrapper table, boolean when) { + return super.join(table, when); + } + + @Override + public R union(QueryWrapper unionQuery) { + super.union(unionQuery); + return (R) this; + } + + @Override + public R unionAll(QueryWrapper unionQuery) { + super.unionAll(unionQuery); + return (R) this; + } + + @Override + public R forUpdate() { + super.forUpdate(); + return (R) this; + } + + @Override + public R forUpdateNoWait() { + super.forUpdateNoWait(); + return (R) this; + } + + @Override + public R groupBy(String name) { + super.groupBy(name); + return (R) this; + } + + @Override + public R groupBy(String... names) { + super.groupBy(names); + return (R) this; + } + + @Override + public R groupBy(QueryColumn column) { + super.groupBy(column); + return (R) this; + } + + @Override + public R groupBy(QueryColumn... columns) { + super.groupBy(columns); + return (R) this; + } + + @Override + public R having(QueryCondition queryCondition) { + super.having(queryCondition); + return (R) this; + } + + @Override + public R orderBy(QueryOrderBy... orderBys) { + super.orderBy(orderBys); + return (R) this; + } + + @Override + public R orderBy(String... orderBys) { + super.orderBy(orderBys); + return (R) this; + } + + @Override + public R limit(Integer rows) { + super.limit(rows); + return (R) this; + } + + @Override + public R offset(Integer offset) { + super.offset(offset); + return (R) this; + } + + @Override + public R limit(Integer offset, Integer rows) { + super.limit(offset, rows); + return (R) this; + } + + @Override + public R datasource(String datasource) { + super.datasource(datasource); + return (R) this; + } + + @Override + public R hint(String hint) { + super.hint(hint); + return (R) this; + } + + @Override + public R clone() { + return (R) super.clone(); + } + +}