public abstract class SupportJoinChainQueryWrapper<T,Children extends SupportJoinChainQueryWrapper<T,Children>> extends SupportJoinWrapper<T,String,Children> implements com.baomidou.mybatisplus.core.conditions.query.Query<Children,T,String>, JoinChainCompareFunc<Children,BaseChainModel<?>>, JoinChainMethodFunc<T,Children>, JoinChainFunc<Children,BaseChainModel<?>>
| 限定符和类型 | 字段和说明 |
|---|---|
protected Map<String,com.baomidou.mybatisplus.core.conditions.SharedString> |
joinSqlMapping
join sql和chain 别名映射
|
protected BaseChainModel<?> |
masterChainModel
主表 chain model
|
customAliasMap, fieldMappingList, hasDistinct, joinSql, manyToManySelectBuildList, masterLogicDelete, masterTableAlias, mpjConfig, notDefaultSelectAll, oneToOneSelectBuildList, sqlSelect| 构造器和说明 |
|---|
SupportJoinChainQueryWrapper() |
| 限定符和类型 | 方法和说明 |
|---|---|
protected Children |
addCondition(boolean condition,
String column,
com.baomidou.mybatisplus.core.enums.SqlKeyword sqlKeyword,
Object val) |
Children |
addConditon(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider,
java.util.function.BiConsumer<Boolean,ChainFieldData> consumer) |
Children |
between(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
需要使用 icu.mhb.mybatisplus.plugln.entity.Vals 作为chain的值
BETWEEN 值1 AND 值2
|
private <P> List<FieldMapping> |
buildField(Provider<BaseChainModel<?>> provider) |
Children |
changeQueryWrapper(BaseChainModel model,
com.baomidou.mybatisplus.core.conditions.AbstractWrapper queryWrapper)
转换查询Wrapper 会把 查询条件,group,order by,having转换来
注意该方法无法给 多个入参添加别名,例如 orderByDesc("id","id2")
这种别名就会添加错误
|
protected String |
columnToString(String column) |
Children |
eq(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
= 查詢 eq
|
protected String |
formatParam(String mapping,
Object param,
boolean isSafetyParam)
处理入参
|
Children |
ge(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
大于等于 >=
|
protected String |
getAliasAndField(BaseChainModel model,
String field) |
String |
getConditionR(Class<?> entityClass,
Field field)
只为避开类型检查
|
protected FieldMapping |
getFieldMapping(ChainFieldData chainFieldData) |
String |
getJoinSql()
获取join SQL语句
|
Children |
groupBy(boolean condition,
Provider<BaseChainModel<?>> provider)
分组:GROUP BY 字段, ...
|
Children |
gt(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
大于 >
|
Children |
in(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
字段 IN (value.get(0), value.get(1), ...)
|
Children |
initEntityCondition(BaseChainModel<?>... models)
初始化 模型中的实体查询条件
|
protected void |
initNeed() |
Children |
isNotNull(boolean condition,
Provider<BaseChainModel<?>> provider)
字段 IS NOT NULL
例: isNotNull("name")
|
Children |
isNull(boolean condition,
Provider<BaseChainModel<?>> provider)
字段 IS NULL
例: isNull("name")
|
private boolean |
isSafetyParam(Object val) |
Children |
join(ChainFieldData leftField,
ChainFieldData rightField,
boolean logicDeleteIsApplyJoin,
SqlExcerpt joinType)
join
|
Children |
joinAnd(boolean condition,
BaseChainModel<?> model,
java.util.function.Consumer<Children> consumer)
join and 参数添加
|
Children |
le(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
小于等于 <=
|
Children |
like(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
LIKE '%值%'
|
Children |
likeLeft(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
LIKE '%值'
|
Children |
likeRight(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
LIKE '值%'
|
protected Children |
likeValue(boolean condition,
com.baomidou.mybatisplus.core.enums.SqlKeyword keyword,
String column,
Object val,
com.baomidou.mybatisplus.core.enums.SqlLike sqlLike)
内部自用
拼接 LIKE 以及 值
|
Children |
lt(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
小于 <
|
<P> Children |
manyToManySelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn,
BaseChainModel<?> model)
根据传入的chain类型来构建全部的字段
|
<P> Children |
manyToManySelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn,
Provider<BaseChainModel<?>> provider)
多对多查询
|
Children |
ne(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
不等于 <>
|
Children |
notBetween(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
需要使用 icu.mhb.mybatisplus.plugln.entity.Vals 作为chain的值
NOT BETWEEN 值1 AND 值2
|
Children |
notIn(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
字段 NOT IN (v0, v1, ...)
|
Children |
notLike(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
NOT LIKE '%值%'
|
Children |
notLikeLeft(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
NOT LIKE '%值'
|
Children |
notLikeRight(boolean condition,
boolean ifNull,
Provider<BaseChainModel<?>> provider)
NOT LIKE '值%'
|
<P> Children |
oneToOneSelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn,
BaseChainModel<?> model)
根据传入的chain类型来构建全部的字段
|
<P> Children |
oneToOneSelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn,
Provider<BaseChainModel<?>> provider)
一对一查询
|
protected String |
onlyFormatParam(Object param)
只是格式化了参数和增加入参,不增加括号
|
Children |
orderBy(boolean condition,
boolean isAsc,
Provider<BaseChainModel<?>> provider)
排序:ORDER BY 字段, ...
|
Children |
orderBySql(boolean condition,
String sql)
排序:ORDER BY 根据传入手写sql
|
protected Children |
preChangeParam(Object val,
java.util.function.BiConsumer<Boolean,Object> consumer) |
private Object |
preFieldDataVal(Object data)
预处理字段数据值
|
Children |
select(BaseChainModel<?> model,
java.util.function.Predicate<com.baomidou.mybatisplus.core.metadata.TableFieldInfo> predicate) |
Children |
select(List<String> selectList) |
Children |
select(String... columns)
用户不要使用这个方法
|
Children |
selectAll(BaseChainModel<?> model) |
Children |
selectAs(Provider<BaseChainModel<?>> provider) |
protected Children |
selectAs(Provider<BaseChainModel<?>> provider,
boolean saveMapping) |
<F> Children |
selectAs(String column,
com.baomidou.mybatisplus.core.toolkit.support.SFunction<F,?> aliasFunc) |
Children |
selectAs(String column,
String alias) |
protected Children |
selectByFieldMapping(List<FieldMapping> fieldMappingList,
boolean saveMapping)
根据字段映射进行查询
内部使用
|
protected void |
setFieldMapping(ChainFieldData chainFieldData) |
protected void |
setFieldMappingList(String fieldName,
String columns) |
protected void |
setFieldMappingList(String fieldName,
String columns,
Class<?> clz) |
protected void |
useChainModel(Provider<BaseChainModel<?>> provider,
java.util.function.Consumer<BaseChainModel<?>> consumer) |
protected <R> R |
useChainModel(Provider<BaseChainModel<?>> provider,
java.util.function.Function<BaseChainModel<?>,R> consumer) |
addObjConditions, addObjConditions, distinct, executeQuery, getAliasAndField, getEntityOrMasterClass, getFuncKeyWord, getTableClass, getTableFieldInfoByFieldName, getTableFieldInfoByFieldName, masterLogicDelete, readWrapperInfo, setFuncKeyWordaddNestedCondition, allEq, allEq, and, and, appendSqlSegments, apply, between, clear, clone, columnsToString, columnsToString, columnToSqlSegment, comment, doGroupBy, doOrderBy, eq, eqSql, exists, first, formatParam, formatSqlMaybeWithParam, func, ge, geSql, getEntity, getEntityClass, getExpression, getParamAlias, getParamNameValuePairs, getSqlComment, getSqlFirst, getSqlSegment, groupBy, groupBy, groupBy, groupBy, gt, gtSql, having, in, in, inExpression, inExpression, inSql, instance, isNotNull, isNull, isUseAnnotationOrderBy, last, le, leSql, like, likeLeft, likeRight, lt, ltSql, maybeDo, ne, nested, not, not, notBetween, notExists, notIn, notIn, notInSql, notLike, notLikeLeft, notLikeRight, or, or, orderBy, orderBy, orderBy, orderBy, setEntity, setEntityClass, setParamAliasgetCustomSqlSegment, getSqlSelect, getSqlSet, getTargetSql, isEmptyOfEntity, isEmptyOfNormal, isEmptyOfWhere, isNonEmptyOfEntity, isNonEmptyOfNormal, isNonEmptyOfWhere, nonEmptyOfEntity, nonEmptyOfNormal, nonEmptyOfWhereequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetSqlSelect, select, select, select, selectbetween, between, between, betweenIfNull, betweenIfNull, betweenIfNull, eq, eq, eq, eqIfNull, eqIfNull, eqIfNull, ge, ge, ge, geIfNull, geIfNull, geIfNull, gt, gt, gt, gtIfNull, gtIfNull, gtIfNull, in, in, in, inIfNull, inIfNull, inIfNull, joinAnd, le, le, le, leIfNull, leIfNull, leIfNull, like, like, like, likeIfNull, likeIfNull, likeIfNull, likeLeft, likeLeft, likeLeft, likeLeftIfNull, likeLeftIfNull, likeLeftIfNull, likeRight, likeRight, likeRight, likeRightIfNull, likeRightIfNull, likeRightIfNull, lt, lt, lt, ltIfNull, ltIfNull, ltIfNull, ne, ne, ne, neIfNull, neIfNull, neIfNull, notBetween, notBetween, notBetween, notBetweenIfNull, notBetweenIfNull, notBetweenIfNull, notIn, notIn, notIn, notInIfNull, notInIfNull, notInIfNull, notLike, notLike, notLike, notLikeIfNull, notLikeIfNull, notLikeIfNull, notLikeLeft, notLikeLeft, notLikeLeft, notLikeLeftIfNull, notLikeLeftIfNull, notLikeLeftIfNull, notLikeRight, notLikeRight, notLikeRight, notLikeRightIfNull, notLikeRightIfNull, notLikeRightIfNullinnerJoin, innerJoin, leftJoin, leftJoin, rightJoin, rightJoingroupBy, groupBy, groupBy, isNotNull, isNotNull, isNotNull, isNull, isNull, isNull, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderBySqlbetweenIfNull, eqIfNull, geIfNull, gtIfNull, leIfNull, likeIfNull, likeLeftIfNull, likeRightIfNull, ltIfNull, neIfNull, notBetweenIfNull, notLikeIfNull, notLikeLeftIfNull, notLikeRightIfNullallEq, allEq, allEq, allEq, allEq, allEq, between, between, eq, eq, ge, ge, gt, gt, le, le, like, like, likeLeft, likeLeft, likeRight, likeRight, lt, lt, ne, ne, notBetween, notBetween, notLike, notLike, notLikeLeft, notLikeLeft, notLikeRight, notLikeRightapply, comment, exists, first, last, notExists, oreqSql, func, geSql, groupBy, groupBy, groupBy, gtSql, having, in, in, inSql, isNotNull, isNull, leSql, ltSql, notIn, notIn, notInSql, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByAsc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderByDesc, orderByDescprotected BaseChainModel<?> masterChainModel
public Children initEntityCondition(BaseChainModel<?>... models)
models - 模型public <P> Children manyToManySelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn, BaseChainModel<?> model)
public <P> Children manyToManySelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn, Provider<BaseChainModel<?>> provider)
column - 映射列provider - chain 提供數據public <P> Children oneToOneSelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn, BaseChainModel<?> model)
public <P> Children oneToOneSelect(com.baomidou.mybatisplus.core.toolkit.support.SFunction<P,?> mappingColumn, Provider<BaseChainModel<?>> provider)
column - 映射列provider - chain 提供數據private <P> List<FieldMapping> buildField(Provider<BaseChainModel<?>> provider)
public Children in(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunc例: in("id", Arrays.asList(1, 2, 3, 4, 5))
in 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children notIn(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunc例: notIn("id", 1, 2, 3, 4, 5)
notIn 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件public Children isNull(boolean condition, Provider<BaseChainModel<?>> provider)
JoinChainFunc例: isNull("name")
isNull 在接口中 JoinChainFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件provider - 执行函数public Children isNotNull(boolean condition, Provider<BaseChainModel<?>> provider)
JoinChainFunc例: isNotNull("name")
isNotNull 在接口中 JoinChainFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件public Children groupBy(boolean condition, Provider<BaseChainModel<?>> provider)
JoinChainFunc例: groupBy("id")
groupBy 在接口中 JoinChainFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件public Children orderBySql(boolean condition, String sql)
JoinChainFuncorderBySql 在接口中 JoinChainFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>public Children orderBy(boolean condition, boolean isAsc, Provider<BaseChainModel<?>> provider)
JoinChainFuncorderBy 在接口中 JoinChainFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>public Children ne(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncne 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children gt(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncgt 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children ge(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncge 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children lt(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunclt 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children le(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncle 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children between(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncBETWEEN 值1 AND 值2
between 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children notBetween(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncNOT BETWEEN 值1 AND 值2
notBetween 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children like(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunclike 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children notLike(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncnotLike 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children notLikeLeft(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncnotLikeLeft 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children notLikeRight(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFuncnotLikeRight 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children likeLeft(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunclikeLeft 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children likeRight(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunclikeRight 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 执行条件ifNull - 是否判空provider - 执行函数public Children eq(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider)
JoinChainCompareFunceq 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 是否执行ifNull - 是否判空provider - 执行函数protected Children likeValue(boolean condition, com.baomidou.mybatisplus.core.enums.SqlKeyword keyword, String column, Object val, com.baomidou.mybatisplus.core.enums.SqlLike sqlLike)
拼接 LIKE 以及 值
protected Children addCondition(boolean condition, String column, com.baomidou.mybatisplus.core.enums.SqlKeyword sqlKeyword, Object val)
protected Children preChangeParam(Object val, java.util.function.BiConsumer<Boolean,Object> consumer)
protected String formatParam(String mapping, Object param, boolean isSafetyParam)
mapping - 例如: "javaType=int,jdbcType=NUMERIC,typeHandler=xxx.xxx.MyTypeHandler" 这种param - 参数public Children joinAnd(boolean condition, BaseChainModel<?> model, java.util.function.Consumer<Children> consumer)
JoinChainCompareFuncjoinAnd 在接口中 JoinChainCompareFunc<Children extends SupportJoinChainQueryWrapper<T,Children>,BaseChainModel<?>>condition - 是否执行model - chainconsumer - 消费者public Children join(ChainFieldData leftField, ChainFieldData rightField, boolean logicDeleteIsApplyJoin, SqlExcerpt joinType)
JoinChainMethodFuncjoin 在接口中 JoinChainMethodFunc<T,Children extends SupportJoinChainQueryWrapper<T,Children>>leftField - 左表字段rightField - 右表字段logicDeleteIsApplyJoin - 逻辑删除是否加入joinjoinType - 连接类型public Children select(BaseChainModel<?> model, java.util.function.Predicate<com.baomidou.mybatisplus.core.metadata.TableFieldInfo> predicate)
public Children selectAll(BaseChainModel<?> model)
public <F> Children selectAs(String column, com.baomidou.mybatisplus.core.toolkit.support.SFunction<F,?> aliasFunc)
public Children selectAs(Provider<BaseChainModel<?>> provider)
protected Children selectAs(Provider<BaseChainModel<?>> provider, boolean saveMapping)
protected Children selectByFieldMapping(List<FieldMapping> fieldMappingList, boolean saveMapping)
内部使用
fieldMappingList - 映射listsaveMapping - public Children addConditon(boolean condition, boolean ifNull, Provider<BaseChainModel<?>> provider, java.util.function.BiConsumer<Boolean,ChainFieldData> consumer)
private boolean isSafetyParam(Object val)
protected void useChainModel(Provider<BaseChainModel<?>> provider, java.util.function.Consumer<BaseChainModel<?>> consumer)
protected <R> R useChainModel(Provider<BaseChainModel<?>> provider, java.util.function.Function<BaseChainModel<?>,R> consumer)
public String getJoinSql()
SupportJoinWrappergetJoinSql 在类中 SupportJoinWrapper<T,String,Children extends SupportJoinChainQueryWrapper<T,Children>>public String getConditionR(Class<?> entityClass, Field field)
SupportJoinWrappergetConditionR 在类中 SupportJoinWrapper<T,String,Children extends SupportJoinChainQueryWrapper<T,Children>>public Children changeQueryWrapper(BaseChainModel model, com.baomidou.mybatisplus.core.conditions.AbstractWrapper queryWrapper)
queryWrapper - protected String getAliasAndField(BaseChainModel model, String field)
protected void initNeed()
initNeed 在类中 SupportJoinWrapper<T,String,Children extends SupportJoinChainQueryWrapper<T,Children>>protected FieldMapping getFieldMapping(ChainFieldData chainFieldData)
protected void setFieldMappingList(String fieldName, String columns)
setFieldMappingList 在类中 SupportJoinWrapper<T,String,Children extends SupportJoinChainQueryWrapper<T,Children>>protected void setFieldMapping(ChainFieldData chainFieldData)
Copyright © 2025. All rights reserved.