mirror of
https://gitee.com/best_handsome/mybatis-plus-join
synced 2025-07-11 00:02:22 +08:00
别名优化
This commit is contained in:
parent
25b3df16cf
commit
9ce2b519b1
@ -218,18 +218,13 @@ public abstract class KtAbstractLambdaWrapper<T, Children extends KtAbstractLamb
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String columnToString(Integer index, Object column, boolean isJoin, PrefixEnum prefixEnum) {
|
protected final String columnsToString(Integer index, PrefixEnum prefixEnum, String alias, KProperty<?>... columns) {
|
||||||
return columnToString(index, (KProperty<?>) column, isJoin, prefixEnum);
|
return Arrays.stream(columns).map(i -> columnToString(index, alias, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
protected String columnToString(Integer index, String alias, KProperty<?> column, boolean isJoin, PrefixEnum prefixEnum) {
|
||||||
protected final String columnsToString(Integer index, PrefixEnum prefixEnum, KProperty<?>... columns) {
|
|
||||||
return Arrays.stream(columns).map(i -> columnToString(index, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String columnToString(Integer index, KProperty<?> column, boolean isJoin, PrefixEnum prefixEnum) {
|
|
||||||
Class<?> entityClass = KtUtils.ref(column);
|
Class<?> entityClass = KtUtils.ref(column);
|
||||||
return getDefault(index, entityClass, isJoin, prefixEnum) + StringPool.DOT + getCache(column).getColumn();
|
return (alias == null ? getDefault(index, entityClass, isJoin, prefixEnum) : alias) + StringPool.DOT + getCache(column).getColumn();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected SelectCache getCache(KProperty<?> fn) {
|
protected SelectCache getCache(KProperty<?> fn) {
|
||||||
|
@ -189,64 +189,64 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children eq(boolean condition, KProperty<?> column, Object val) {
|
public Children eq(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, EQ, val);
|
return addCondition(condition, alias, column, EQ, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children ne(boolean condition, KProperty<?> column, Object val) {
|
public Children ne(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, NE, val);
|
return addCondition(condition, alias, column, NE, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children gt(boolean condition, KProperty<?> column, Object val) {
|
public Children gt(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, GT, val);
|
return addCondition(condition, alias, column, GT, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children ge(boolean condition, KProperty<?> column, Object val) {
|
public Children ge(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, GE, val);
|
return addCondition(condition, alias, column, GE, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children lt(boolean condition, KProperty<?> column, Object val) {
|
public Children lt(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, LT, val);
|
return addCondition(condition, alias, column, LT, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children le(boolean condition, KProperty<?> column, Object val) {
|
public Children le(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return addCondition(condition, column, LE, val);
|
return addCondition(condition, alias, column, LE, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children like(boolean condition, KProperty<?> column, Object val) {
|
public Children like(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return likeValue(condition, LIKE, column, val, SqlLike.DEFAULT);
|
return likeValue(condition, LIKE, alias, column, val, SqlLike.DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children notLike(boolean condition, KProperty<?> column, Object val) {
|
public Children notLike(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return likeValue(condition, NOT_LIKE, column, val, SqlLike.DEFAULT);
|
return likeValue(condition, NOT_LIKE, alias, column, val, SqlLike.DEFAULT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children likeLeft(boolean condition, KProperty<?> column, Object val) {
|
public Children likeLeft(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return likeValue(condition, LIKE, column, val, SqlLike.LEFT);
|
return likeValue(condition, LIKE, alias, column, val, SqlLike.LEFT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children likeRight(boolean condition, KProperty<?> column, Object val) {
|
public Children likeRight(boolean condition, String alias, KProperty<?> column, Object val) {
|
||||||
return likeValue(condition, LIKE, column, val, SqlLike.RIGHT);
|
return likeValue(condition, LIKE, alias, column, val, SqlLike.RIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children between(boolean condition, KProperty<?> column, Object val1, Object val2) {
|
public Children between(boolean condition, String alias, KProperty<?> column, Object val1, Object val2) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), BETWEEN,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), BETWEEN,
|
||||||
() -> formatParam(null, val1), AND, () -> formatParam(null, val2)));
|
() -> formatParam(null, val1), AND, () -> formatParam(null, val2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children notBetween(boolean condition, KProperty<?> column, Object val1, Object val2) {
|
public Children notBetween(boolean condition, String alias, KProperty<?> column, Object val1, Object val2) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), NOT_BETWEEN,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), NOT_BETWEEN,
|
||||||
() -> formatParam(null, val1), AND, () -> formatParam(null, val2)));
|
() -> formatParam(null, val1), AND, () -> formatParam(null, val2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -317,122 +317,119 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children isNull(boolean condition, KProperty<?> column) {
|
public Children isNull(boolean condition, String alias, KProperty<?> column) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), IS_NULL));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), IS_NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children isNotNull(boolean condition, KProperty<?> column) {
|
public Children isNotNull(boolean condition, String alias, KProperty<?> column) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), IS_NOT_NULL));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), IS_NOT_NULL));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children in(boolean condition, KProperty<?> column, Collection<?> coll) {
|
public Children in(boolean condition, String alias, KProperty<?> column, Collection<?> coll) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), IN, inExpression(coll)));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), IN, inExpression(coll)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children in(boolean condition, KProperty<?> column, Object... values) {
|
public Children in(boolean condition, String alias, KProperty<?> column, Object... values) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), IN, inExpression(values)));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), IN, inExpression(values)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children notIn(boolean condition, KProperty<?> column, Collection<?> coll) {
|
public Children notIn(boolean condition, String alias, KProperty<?> column, Collection<?> coll) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), NOT_IN, inExpression(coll)));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), NOT_IN, inExpression(coll)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children notIn(boolean condition, KProperty<?> column, Object... values) {
|
public Children notIn(boolean condition, String alias, KProperty<?> column, Object... values) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), NOT_IN, inExpression(values)));
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), NOT_IN, inExpression(values)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children inSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children inSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), IN,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), IN,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children notInSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children notInSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), NOT_IN,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), NOT_IN,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children gtSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children gtSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), GT,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), GT,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children geSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children geSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), GE,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), GE,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children ltSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children ltSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), LT,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), LT,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children leSql(boolean condition, KProperty<?> column, String inValue) {
|
public Children leSql(boolean condition, String alias, KProperty<?> column, String inValue) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), LE,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), LE,
|
||||||
() -> String.format("(%s)", inValue)));
|
() -> String.format("(%s)", inValue)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children groupBy(boolean condition, List<KProperty<?>> columns) {
|
public Children groupBy(boolean condition, String alias, List<KProperty<?>> columns) {
|
||||||
return maybeDo(condition, () -> {
|
return maybeDo(condition, () -> {
|
||||||
if (CollectionUtils.isNotEmpty(columns)) {
|
if (CollectionUtils.isNotEmpty(columns)) {
|
||||||
final String finalOne = columnsToString(index, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST, columns);
|
final String finalOne = columnsToString(index, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST, alias, columns);
|
||||||
appendSqlSegments(GROUP_BY, () -> finalOne);
|
appendSqlSegments(GROUP_BY, () -> finalOne);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children groupBy(boolean condition, KProperty<?> column, KProperty<?>... columns) {
|
public Children groupBy(boolean condition, String alias, KProperty<?>... columns) {
|
||||||
return maybeDo(condition, () -> {
|
return maybeDo(condition, () -> {
|
||||||
String one = columnToString(index, column, false, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST);
|
|
||||||
if (ArrayUtils.isNotEmpty(columns)) {
|
if (ArrayUtils.isNotEmpty(columns)) {
|
||||||
one += columnsToString(index, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST, columns);
|
final String finalOne = columnsToString(index, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST, alias, columns);
|
||||||
|
appendSqlSegments(GROUP_BY, () -> finalOne);
|
||||||
}
|
}
|
||||||
final String finalOne = one;
|
|
||||||
appendSqlSegments(GROUP_BY, () -> finalOne);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children orderByAsc(boolean condition, List<KProperty<?>> columns) {
|
public Children orderByAsc(boolean condition, String alias, List<KProperty<?>> columns) {
|
||||||
return maybeDo(condition, () -> {
|
return maybeDo(condition, () -> {
|
||||||
if (CollectionUtils.isNotEmpty(columns)) {
|
if (CollectionUtils.isNotEmpty(columns)) {
|
||||||
columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
||||||
columnToSqlSegment(index, columnSqlInjectFilter(c)), ASC));
|
columnToSqlSegment(index, alias, columnSqlInjectFilter(c)), ASC));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children orderByDesc(boolean condition, List<KProperty<?>> columns) {
|
public Children orderByDesc(boolean condition, String alias, List<KProperty<?>> columns) {
|
||||||
return maybeDo(condition, () -> {
|
return maybeDo(condition, () -> {
|
||||||
if (CollectionUtils.isNotEmpty(columns)) {
|
if (CollectionUtils.isNotEmpty(columns)) {
|
||||||
columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
||||||
columnToSqlSegment(index, columnSqlInjectFilter(c)), DESC));
|
columnToSqlSegment(index, alias, columnSqlInjectFilter(c)), DESC));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children orderBy(boolean condition, boolean isAsc, KProperty<?> column, KProperty<?>... columns) {
|
public Children orderBy(boolean condition, boolean isAsc, String alias, KProperty<?>... columns) {
|
||||||
return maybeDo(condition, () -> {
|
return maybeDo(condition, () -> {
|
||||||
final SqlKeyword mode = isAsc ? ASC : DESC;
|
final SqlKeyword mode = isAsc ? ASC : DESC;
|
||||||
appendSqlSegments(ORDER_BY, columnToSqlSegment(index, column), mode);
|
|
||||||
if (ArrayUtils.isNotEmpty(columns)) {
|
if (ArrayUtils.isNotEmpty(columns)) {
|
||||||
Arrays.stream(columns).forEach(c -> appendSqlSegments(ORDER_BY,
|
Arrays.stream(columns).forEach(c -> appendSqlSegments(ORDER_BY,
|
||||||
columnToSqlSegment(index, columnSqlInjectFilter(c)), mode));
|
columnToSqlSegment(index, alias, columnSqlInjectFilter(c)), mode));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -478,8 +475,8 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
* 内部自用
|
* 内部自用
|
||||||
* <p>拼接 LIKE 以及 值</p>
|
* <p>拼接 LIKE 以及 值</p>
|
||||||
*/
|
*/
|
||||||
protected Children likeValue(boolean condition, SqlKeyword keyword, KProperty<?> column, Object val, SqlLike sqlLike) {
|
protected Children likeValue(boolean condition, SqlKeyword keyword, String alias, KProperty<?> column, Object val, SqlLike sqlLike) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), keyword,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), keyword,
|
||||||
() -> formatParam(null, SqlUtils.concatLike(val, sqlLike))));
|
() -> formatParam(null, SqlUtils.concatLike(val, sqlLike))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -496,18 +493,18 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
* @param sqlKeyword SQL 关键词
|
* @param sqlKeyword SQL 关键词
|
||||||
* @param val 条件值
|
* @param val 条件值
|
||||||
*/
|
*/
|
||||||
protected Children addCondition(boolean condition, KProperty<?> column, SqlKeyword sqlKeyword, Object val) {
|
protected Children addCondition(boolean condition, String alias, KProperty<?> column, SqlKeyword sqlKeyword, Object val) {
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), sqlKeyword,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), sqlKeyword,
|
||||||
() -> formatParam(null, val)));
|
() -> formatParam(null, val)));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <X, S> Children addCondition(boolean condition, KProperty<?> column, SqlKeyword sqlKeyword, KProperty<?> val) {
|
protected <X, S> Children addCondition(boolean condition, String alias, KProperty<?> column, SqlKeyword sqlKeyword, String rightAlias, KProperty<?> val) {
|
||||||
Class<X> c = (Class<X>) KtUtils.ref(column);
|
Class<X> c = (Class<X>) KtUtils.ref(column);
|
||||||
Class<S> v = (Class<S>) KtUtils.ref(val);
|
Class<S> v = (Class<S>) KtUtils.ref(val);
|
||||||
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, column), sqlKeyword,
|
return maybeDo(condition, () -> appendSqlSegments(columnToSqlSegment(index, alias, column), sqlKeyword,
|
||||||
isNo ?
|
isNo ?
|
||||||
columnToSqlSegmentS(index, val, v == c && v == joinClass) :
|
columnToSqlSegmentS(index, rightAlias, val, v == c && v == joinClass) :
|
||||||
columnToSqlSegmentS(index, val, v == c)
|
columnToSqlSegmentS(index, rightAlias, val, v == c)
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -690,18 +687,18 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
/**
|
/**
|
||||||
* 获取 columnName
|
* 获取 columnName
|
||||||
*/
|
*/
|
||||||
protected final ISqlSegment columnToSqlSegment(Integer index, KProperty<?> column) {
|
protected final ISqlSegment columnToSqlSegment(Integer index, String alias, KProperty<?> column) {
|
||||||
return () -> columnToString(index, column, false, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST);
|
return () -> columnToString(index, alias, column, false, isNo ? PrefixEnum.ON_FIRST : PrefixEnum.CD_FIRST);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final ISqlSegment columnToSqlSegmentS(Integer index, KProperty<?> column, boolean isJoin) {
|
protected final ISqlSegment columnToSqlSegmentS(Integer index, String alias, KProperty<?> column, boolean isJoin) {
|
||||||
PrefixEnum prefixEnum;
|
PrefixEnum prefixEnum;
|
||||||
if (isMain) {
|
if (isMain) {
|
||||||
prefixEnum = isNo ? PrefixEnum.ON_SECOND /* 理论上不可能有这种情况 */ : PrefixEnum.CD_SECOND;
|
prefixEnum = isNo ? PrefixEnum.ON_SECOND /* 理论上不可能有这种情况 */ : PrefixEnum.CD_SECOND;
|
||||||
} else {
|
} else {
|
||||||
prefixEnum = isNo ? PrefixEnum.ON_SECOND : PrefixEnum.CD_ON_SECOND;
|
prefixEnum = isNo ? PrefixEnum.ON_SECOND : PrefixEnum.CD_ON_SECOND;
|
||||||
}
|
}
|
||||||
return () -> columnToString(index, column, isJoin, prefixEnum);
|
return () -> columnToString(index, alias, column, isJoin, prefixEnum);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected final ISqlSegment columnToSqlSegment(String column) {
|
protected final ISqlSegment columnToSqlSegment(String column) {
|
||||||
@ -711,9 +708,7 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
/**
|
/**
|
||||||
* 获取 columnName
|
* 获取 columnName
|
||||||
*/
|
*/
|
||||||
protected String columnToString(Integer index, Object column, boolean isJoin, PrefixEnum prefixEnum) {
|
abstract String columnToString(Integer index, String alias, KProperty<?> column, boolean isJoin, PrefixEnum prefixEnum);
|
||||||
return (String) column;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected String columnToString(String column) {
|
protected String columnToString(String column) {
|
||||||
if (checkSqlInjection && MPJSqlInjectionUtils.check(column)) {
|
if (checkSqlInjection && MPJSqlInjectionUtils.check(column)) {
|
||||||
@ -736,12 +731,12 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
*
|
*
|
||||||
* @param columns 多字段
|
* @param columns 多字段
|
||||||
*/
|
*/
|
||||||
protected String columnsToString(Integer index, PrefixEnum prefixEnum, KProperty<?>... columns) {
|
protected String columnsToString(Integer index, PrefixEnum prefixEnum, String alias, KProperty<?>... columns) {
|
||||||
return Arrays.stream(columns).map(i -> this.columnToString(index, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
return Arrays.stream(columns).map(i -> this.columnToString(index, alias, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String columnsToString(Integer index, PrefixEnum prefixEnum, List<KProperty<?>> columns) {
|
protected String columnsToString(Integer index, PrefixEnum prefixEnum, String alias, List<KProperty<?>> columns) {
|
||||||
return columns.stream().map(i -> this.columnToString(index, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
return columns.stream().map(i -> this.columnToString(index, alias, i, false, prefixEnum)).collect(joining(StringPool.COMMA));
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("MethodDoesntCallSuperMethod")
|
@SuppressWarnings("MethodDoesntCallSuperMethod")
|
||||||
@ -762,33 +757,33 @@ public abstract class KtAbstractWrapper<T, Children extends KtAbstractWrapper<T,
|
|||||||
/* ************************* on语句重载 *************************** */
|
/* ************************* on语句重载 *************************** */
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children eq(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children eq(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, EQ, val);
|
return addCondition(condition, alias, column, EQ, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children ne(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children ne(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, NE, val);
|
return addCondition(condition, alias, column, NE, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children gt(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children gt(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, GT, val);
|
return addCondition(condition, alias, column, GT, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children ge(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children ge(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, GE, val);
|
return addCondition(condition, alias, column, GE, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children lt(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children lt(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, LT, val);
|
return addCondition(condition, alias, column, LT, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Children le(boolean condition, KProperty<?> column, KProperty<?> val) {
|
public Children le(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
return addCondition(condition, column, LE, val);
|
return addCondition(condition, alias, column, LE, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ****************************************** **/
|
/* ****************************************** **/
|
||||||
|
@ -13,17 +13,13 @@ import java.util.Map;
|
|||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public interface Compare<Children> extends Serializable {
|
public interface Compare<Children> extends Serializable {
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children allEq(Map<KProperty<?>, ?> params) {
|
||||||
*/
|
|
||||||
default Children allEq(Map<KProperty<?>,?> params) {
|
|
||||||
return allEq(params, true);
|
return allEq(params, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children allEq(Map<KProperty<?>, ?> params, boolean null2IsNull) {
|
||||||
*/
|
|
||||||
default Children allEq(Map<KProperty<?>, ?> params, boolean null2IsNull) {
|
|
||||||
return allEq(true, params, null2IsNull);
|
return allEq(true, params, null2IsNull);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,15 +31,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段\
|
* @param null2IsNull 是否参数为 null 自动执行 isNull 方法, false 则忽略这个字段\
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children allEq(boolean condition, Map<KProperty<?>, ?> params, boolean null2IsNull);
|
Children allEq(boolean condition, Map<KProperty<?>, ?> params, boolean null2IsNull);
|
||||||
|
|
||||||
|
|
||||||
/**
|
default Children eq(KProperty<?> column, Object val) {
|
||||||
* ignore
|
return eq(true, null, column, val);
|
||||||
*/
|
}
|
||||||
@SuppressWarnings("UnusedReturnValue")
|
|
||||||
default Children eq(KProperty<?> column, Object val) {
|
default Children eq(String alias, KProperty<?> column, Object val) {
|
||||||
return eq(true, column, val);
|
return eq(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return eq(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -54,13 +54,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children eq(boolean condition, KProperty<?> column, Object val);
|
Children eq(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children ne(KProperty<?> column, Object val) {
|
||||||
*/
|
return ne(true, null, column, val);
|
||||||
default Children ne(KProperty<?> column, Object val) {
|
}
|
||||||
return ne(true, column, val);
|
|
||||||
|
default Children ne(String alias, KProperty<?> column, Object val) {
|
||||||
|
return ne(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return ne(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -71,13 +77,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children ne(boolean condition, KProperty<?> column, Object val);
|
Children ne(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children gt(KProperty<?> column, Object val) {
|
||||||
*/
|
return gt(true, null, column, val);
|
||||||
default Children gt(KProperty<?> column, Object val) {
|
}
|
||||||
return gt(true, column, val);
|
|
||||||
|
default Children gt(String alias, KProperty<?> column, Object val) {
|
||||||
|
return gt(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return gt(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -88,13 +100,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children gt(boolean condition, KProperty<?> column, Object val);
|
Children gt(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children ge(KProperty<?> column, Object val) {
|
||||||
*/
|
return ge(true, null, column, val);
|
||||||
default Children ge(KProperty<?> column, Object val) {
|
}
|
||||||
return ge(true, column, val);
|
|
||||||
|
default Children ge(String alias, KProperty<?> column, Object val) {
|
||||||
|
return ge(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return ge(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -105,13 +123,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children ge(boolean condition, KProperty<?> column, Object val);
|
Children ge(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children lt(KProperty<?> column, Object val) {
|
||||||
*/
|
return lt(true, null, column, val);
|
||||||
default Children lt(KProperty<?> column, Object val) {
|
}
|
||||||
return lt(true, column, val);
|
|
||||||
|
default Children lt(String alias, KProperty<?> column, Object val) {
|
||||||
|
return lt(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return lt(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -122,13 +146,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children lt(boolean condition, KProperty<?> column, Object val);
|
Children lt(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children le(KProperty<?> column, Object val) {
|
default Children le(KProperty<?> column, Object val) {
|
||||||
return le(true, column, val);
|
return le(true, null, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(String alias, KProperty<?> column, Object val) {
|
||||||
|
return le(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return le(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -139,13 +169,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children le(boolean condition, KProperty<?> column, Object val);
|
Children le(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children between(KProperty<?> column, Object val1, Object val2) {
|
||||||
*/
|
return between(true, null, column, val1, val2);
|
||||||
default Children between(KProperty<?> column, Object val1, Object val2) {
|
}
|
||||||
return between(true, column, val1, val2);
|
|
||||||
|
default Children between(String alias, KProperty<?> column, Object val1, Object val2) {
|
||||||
|
return between(true, alias, column, val1, val2);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children between(boolean condition, KProperty<?> column, Object val1, Object val2) {
|
||||||
|
return between(condition, null, column, val1, val2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -157,13 +193,18 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val2 值2
|
* @param val2 值2
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children between(boolean condition, KProperty<?> column, Object val1, Object val2);
|
Children between(boolean condition, String alias, KProperty<?> column, Object val1, Object val2);
|
||||||
|
|
||||||
/**
|
default Children notBetween(KProperty<?> column, Object val1, Object val2) {
|
||||||
* ignore
|
return notBetween(true, null, column, val1, val2);
|
||||||
*/
|
}
|
||||||
default Children notBetween(KProperty<?> column, Object val1, Object val2) {
|
|
||||||
return notBetween(true, column, val1, val2);
|
default Children notBetween(String alias, KProperty<?> column, Object val1, Object val2) {
|
||||||
|
return notBetween(true, alias, column, val1, val2);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notBetween(boolean condition, KProperty<?> column, Object val1, Object val2) {
|
||||||
|
return notBetween(condition, null, column, val1, val2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -175,13 +216,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val2 值2
|
* @param val2 值2
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children notBetween(boolean condition, KProperty<?> column, Object val1, Object val2);
|
Children notBetween(boolean condition, String alias, KProperty<?> column, Object val1, Object val2);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children like(KProperty<?> column, Object val) {
|
||||||
*/
|
return like(true, null, column, val);
|
||||||
default Children like(KProperty<?> column, Object val) {
|
}
|
||||||
return like(true, column, val);
|
|
||||||
|
default Children like(String alisa, KProperty<?> column, Object val) {
|
||||||
|
return like(true, alisa, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children like(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return like(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -192,13 +239,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children like(boolean condition, KProperty<?> column, Object val);
|
Children like(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children notLike(KProperty<?> column, Object val) {
|
||||||
*/
|
return notLike(true, null, column, val);
|
||||||
default Children notLike(KProperty<?> column, Object val) {
|
}
|
||||||
return notLike(true, column, val);
|
|
||||||
|
default Children notLike(String alias, KProperty<?> column, Object val) {
|
||||||
|
return notLike(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notLike(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return notLike(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -209,13 +262,19 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children notLike(boolean condition, KProperty<?> column, Object val);
|
Children notLike(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children likeLeft(KProperty<?> column, Object val) {
|
||||||
*/
|
return likeLeft(true, null, column, val);
|
||||||
default Children likeLeft(KProperty<?> column, Object val) {
|
}
|
||||||
return likeLeft(true, column, val);
|
|
||||||
|
default Children likeLeft(String alias, KProperty<?> column, Object val) {
|
||||||
|
return likeLeft(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children likeLeft(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return likeLeft(condition, null, column, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -226,15 +285,22 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children likeLeft(boolean condition, KProperty<?> column, Object val);
|
Children likeLeft(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children likeRight(KProperty<?> column, Object val) {
|
||||||
*/
|
return likeRight(true, null, column, val);
|
||||||
default Children likeRight(KProperty<?> column, Object val) {
|
|
||||||
return likeRight(true, column, val);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default Children likeRight(String alias, KProperty<?> column, Object val) {
|
||||||
|
return likeRight(true, alias, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children likeRight(boolean condition, KProperty<?> column, Object val) {
|
||||||
|
return likeRight(condition, null, column, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LIKE '值%'
|
* LIKE '值%'
|
||||||
*
|
*
|
||||||
@ -243,5 +309,5 @@ public interface Compare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children likeRight(boolean condition, KProperty<?> column, Object val);
|
Children likeRight(boolean condition, String alias, KProperty<?> column, Object val);
|
||||||
}
|
}
|
||||||
|
@ -12,15 +12,20 @@ import java.util.function.Consumer;
|
|||||||
* <p>
|
* <p>
|
||||||
* copy {@link com.baomidou.mybatisplus.core.conditions.interfaces.Func}
|
* copy {@link com.baomidou.mybatisplus.core.conditions.interfaces.Func}
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({"unused", "JavadocDeclaration"})
|
@SuppressWarnings("unused")
|
||||||
public interface Func<Children> extends Serializable {
|
public interface Func<Children> extends Serializable {
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("UnusedReturnValue")
|
|
||||||
default Children isNull(KProperty<?> column) {
|
default Children isNull(KProperty<?> column) {
|
||||||
return isNull(true, column);
|
return isNull(true, null, column);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children isNull(String alias, KProperty<?> column) {
|
||||||
|
return isNull(true, alias, column);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children isNull(boolean condition, KProperty<?> column) {
|
||||||
|
return isNull(condition, null, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,13 +36,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param column 字段
|
* @param column 字段
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children isNull(boolean condition, KProperty<?> column);
|
Children isNull(boolean condition, String alias, KProperty<?> column);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children isNotNull(KProperty<?> column) {
|
default Children isNotNull(KProperty<?> column) {
|
||||||
return isNotNull(true, column);
|
return isNotNull(true, null, column);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children isNotNull(String alias, KProperty<?> column) {
|
||||||
|
return isNotNull(true, alias, column);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children isNotNull(boolean condition, KProperty<?> column) {
|
||||||
|
return isNotNull(condition, null, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -48,13 +59,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param column 字段
|
* @param column 字段
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children isNotNull(boolean condition, KProperty<?> column);
|
Children isNotNull(boolean condition, String alias, KProperty<?> column);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children in(KProperty<?> column, Collection<?> coll) {
|
default Children in(KProperty<?> column, Collection<?> coll) {
|
||||||
return in(true, column, coll);
|
return in(true, null, column, coll);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children in(String alias, KProperty<?> column, Collection<?> coll) {
|
||||||
|
return in(true, alias, column, coll);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children in(boolean condition, KProperty<?> column, Collection<?> coll) {
|
||||||
|
return in(condition, null, column, coll);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,13 +86,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param coll 数据集合
|
* @param coll 数据集合
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children in(boolean condition, KProperty<?> column, Collection<?> coll);
|
Children in(boolean condition, String alias, KProperty<?> column, Collection<?> coll);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children in(KProperty<?> column, Object... values) {
|
default Children in(KProperty<?> column, Object... values) {
|
||||||
return in(true, column, values);
|
return in(true, null, column, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children in(String alias, KProperty<?> column, Object... values) {
|
||||||
|
return in(true, alias, column, values);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children in(boolean condition, KProperty<?> column, Object... values) {
|
||||||
|
return in(condition, null, column, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -90,13 +113,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param values 数据数组
|
* @param values 数据数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children in(boolean condition, KProperty<?> column, Object... values);
|
Children in(boolean condition, String alias, KProperty<?> column, Object... values);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children notIn(KProperty<?> column, Collection<?> coll) {
|
default Children notIn(KProperty<?> column, Collection<?> coll) {
|
||||||
return notIn(true, column, coll);
|
return notIn(true, null, column, coll);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notIn(String alias, KProperty<?> column, Collection<?> coll) {
|
||||||
|
return notIn(true, alias, column, coll);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notIn(boolean condition, KProperty<?> column, Collection<?> coll) {
|
||||||
|
return notIn(condition, null, column, coll);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -108,13 +137,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param coll 数据集合
|
* @param coll 数据集合
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children notIn(boolean condition, KProperty<?> column, Collection<?> coll);
|
Children notIn(boolean condition, String alias, KProperty<?> column, Collection<?> coll);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children notIn(KProperty<?> column, Object... value) {
|
default Children notIn(KProperty<?> column, Object... value) {
|
||||||
return notIn(true, column, value);
|
return notIn(true, null, column, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notIn(String alias, KProperty<?> column, Object... value) {
|
||||||
|
return notIn(true, alias, column, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notIn(boolean condition, KProperty<?> column, Object... values) {
|
||||||
|
return notIn(condition, null, column, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -126,13 +161,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param values 数据数组
|
* @param values 数据数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children notIn(boolean condition, KProperty<?> column, Object... values);
|
Children notIn(boolean condition, String alias, KProperty<?> column, Object... values);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children inSql(KProperty<?> column, String inValue) {
|
default Children inSql(KProperty<?> column, String inValue) {
|
||||||
return inSql(true, column, inValue);
|
return inSql(true, null, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children inSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return inSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children inSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return inSql(condition, null, column, inValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -146,13 +187,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param inValue sql语句
|
* @param inValue sql语句
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children inSql(boolean condition, KProperty<?> column, String inValue);
|
Children inSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children notInSql(KProperty<?> column, String inValue) {
|
default Children notInSql(KProperty<?> column, String inValue) {
|
||||||
return notInSql(true, column, inValue);
|
return notInSql(true, null, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notInSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return notInSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children notInSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return notInSql(condition, null, column, inValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -166,26 +213,42 @@ public interface Func<Children> extends Serializable {
|
|||||||
* @param inValue sql语句 ---> 1,2,3,4,5,6 或者 select id from table where id < 3
|
* @param inValue sql语句 ---> 1,2,3,4,5,6 或者 select id from table where id < 3
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children notInSql(boolean condition, KProperty<?> column, String inValue);
|
Children notInSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
|
default Children gtSql(KProperty<?> column, String inValue) {
|
||||||
|
return gtSql(true, null, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gtSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return gtSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gtSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return gtSql(condition, null, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 字段 > ( sql语句 )
|
* 字段 > ( sql语句 )
|
||||||
* <p>例1: gtSql("id", "1, 2, 3, 4, 5, 6")</p>
|
* <p>例1: gtSql("id", "1, 2, 3, 4, 5, 6")</p>
|
||||||
* <p>例1: gtSql("id", "select id from table where name = 'JunJun'")</p>
|
* <p>例1: gtSql("id", "select id from table where name = 'JunJun'")</p>
|
||||||
*
|
*
|
||||||
* @param condition
|
* @param condition 执行条件
|
||||||
* @param column
|
* @param column 字段
|
||||||
* @param inValue
|
* @param inValue sql语句
|
||||||
* @return
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children gtSql(boolean condition, KProperty<?> column, String inValue);
|
Children gtSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
/**
|
default Children geSql(KProperty<?> column, String inValue) {
|
||||||
* ignore
|
return geSql(true, null, column, inValue);
|
||||||
*/
|
}
|
||||||
default Children gtSql(KProperty<?> column, String inValue) {
|
|
||||||
return gtSql(true, column, inValue);
|
default Children geSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return geSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children geSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return geSql(condition, null, column, inValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -193,18 +256,24 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例1: geSql("id", "1, 2, 3, 4, 5, 6")</p>
|
* <p>例1: geSql("id", "1, 2, 3, 4, 5, 6")</p>
|
||||||
* <p>例1: geSql("id", "select id from table where name = 'JunJun'")</p>
|
* <p>例1: geSql("id", "select id from table where name = 'JunJun'")</p>
|
||||||
*
|
*
|
||||||
* @param condition
|
* @param condition 执行条件
|
||||||
* @param column
|
* @param column 字段
|
||||||
* @param inValue
|
* @param inValue sql语句
|
||||||
* @return
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children geSql(boolean condition, KProperty<?> column, String inValue);
|
Children geSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
default Children ltSql(KProperty<?> column, String inValue) {
|
||||||
*/
|
return ltSql(true, null, column, inValue);
|
||||||
default Children geSql(KProperty<?> column, String inValue) {
|
}
|
||||||
return geSql(true, column, inValue);
|
|
||||||
|
default Children ltSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return ltSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ltSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return ltSql(condition, null, column, inValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -212,18 +281,23 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例1: ltSql("id", "1, 2, 3, 4, 5, 6")</p>
|
* <p>例1: ltSql("id", "1, 2, 3, 4, 5, 6")</p>
|
||||||
* <p>例1: ltSql("id", "select id from table where name = 'JunJun'")</p>
|
* <p>例1: ltSql("id", "select id from table where name = 'JunJun'")</p>
|
||||||
*
|
*
|
||||||
* @param condition
|
* @param condition 执行条件
|
||||||
* @param column
|
* @param column 字段
|
||||||
* @param inValue
|
* @param inValue sql语句
|
||||||
* @return
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children ltSql(boolean condition, KProperty<?> column, String inValue);
|
Children ltSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
/**
|
default Children leSql(KProperty<?> column, String inValue) {
|
||||||
* ignore
|
return leSql(true, null, column, inValue);
|
||||||
*/
|
}
|
||||||
default Children ltSql(KProperty<?> column, String inValue) {
|
|
||||||
return ltSql(true, column, inValue);
|
default Children leSql(String alias, KProperty<?> column, String inValue) {
|
||||||
|
return leSql(true, alias, column, inValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children leSql(boolean condition, KProperty<?> column, String inValue) {
|
||||||
|
return leSql(condition, null, column, inValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -231,44 +305,40 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例1: leSql("id", "1, 2, 3, 4, 5, 6")</p>
|
* <p>例1: leSql("id", "1, 2, 3, 4, 5, 6")</p>
|
||||||
* <p>例1: leSql("id", "select id from table where name = 'JunJun'")</p>
|
* <p>例1: leSql("id", "select id from table where name = 'JunJun'")</p>
|
||||||
*
|
*
|
||||||
* @param condition
|
* @param condition 执行条件
|
||||||
* @param column
|
* @param column 字段
|
||||||
* @param inValue
|
* @param inValue sql语句
|
||||||
* @return
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children leSql(boolean condition, KProperty<?> column, String inValue);
|
Children leSql(boolean condition, String alias, KProperty<?> column, String inValue);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children leSql(KProperty<?> column, String inValue) {
|
|
||||||
return leSql(true, column, inValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children groupBy(KProperty<?> column) {
|
|
||||||
return groupBy(true, column);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children groupBy(List<KProperty<?>> column) {
|
default Children groupBy(List<KProperty<?>> column) {
|
||||||
return groupBy(true, column);
|
return groupBy(true, null, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
default Children groupBy(String alias, List<KProperty<?>> column) {
|
||||||
* ignore
|
return groupBy(true, alias, column);
|
||||||
*/
|
}
|
||||||
Children groupBy(boolean condition, List<KProperty<?>> columns);
|
|
||||||
|
|
||||||
/**
|
default Children groupBy(boolean condition, List<KProperty<?>> columns) {
|
||||||
* ignore
|
return groupBy(condition, null, columns);
|
||||||
*/
|
}
|
||||||
default Children groupBy(KProperty<?> column, KProperty<?>... columns) {
|
|
||||||
return groupBy(true, column, columns);
|
|
||||||
|
Children groupBy(boolean condition, String alias, List<KProperty<?>> columns);
|
||||||
|
|
||||||
|
|
||||||
|
default Children groupBy(KProperty<?>... columns) {
|
||||||
|
return groupBy(true, null, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children groupBy(String alias, KProperty<?>... columns) {
|
||||||
|
return groupBy(true, alias, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children groupBy(boolean condition, KProperty<?>... columns) {
|
||||||
|
return groupBy(condition, null, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -276,36 +346,42 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例: groupBy("id", "name")</p>
|
* <p>例: groupBy("id", "name")</p>
|
||||||
*
|
*
|
||||||
* @param condition 执行条件
|
* @param condition 执行条件
|
||||||
* @param column 单个字段
|
|
||||||
* @param columns 字段数组
|
* @param columns 字段数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children groupBy(boolean condition, KProperty<?> column, KProperty<?>... columns);
|
Children groupBy(boolean condition, String alias, KProperty<?>... columns);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children orderByAsc(KProperty<?> column) {
|
default Children orderByAsc(KProperty<?> column) {
|
||||||
return orderByAsc(true, column);
|
return orderByAsc(true, (String) null, column);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
default Children orderByAsc(String alias, KProperty<?> column) {
|
||||||
* ignore
|
return orderByAsc(true, alias, column);
|
||||||
*/
|
}
|
||||||
|
|
||||||
|
|
||||||
default Children orderByAsc(List<KProperty<?>> columns) {
|
default Children orderByAsc(List<KProperty<?>> columns) {
|
||||||
return orderByAsc(true, columns);
|
return orderByAsc(true, null, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
default Children orderByAsc(String alias, List<KProperty<?>> columns) {
|
||||||
* ignore
|
return orderByAsc(true, alias, columns);
|
||||||
*/
|
}
|
||||||
Children orderByAsc(boolean condition, List<KProperty<?>> columns);
|
|
||||||
|
|
||||||
/**
|
default Children orderByAsc(boolean condition, List<KProperty<?>> columns) {
|
||||||
* ignore
|
return orderByAsc(condition, null, columns);
|
||||||
*/
|
}
|
||||||
default Children orderByAsc(KProperty<?> column, KProperty<?>... columns) {
|
|
||||||
return orderByAsc(true, column, columns);
|
Children orderByAsc(boolean condition, String alias, List<KProperty<?>> columns);
|
||||||
|
|
||||||
|
|
||||||
|
default Children orderByAsc(KProperty<?>... columns) {
|
||||||
|
return orderByAsc(true, null, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children orderByAsc(String alias, KProperty<?>... columns) {
|
||||||
|
return orderByAsc(true, alias, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -313,38 +389,38 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例: orderByAsc("id", "name")</p>
|
* <p>例: orderByAsc("id", "name")</p>
|
||||||
*
|
*
|
||||||
* @param condition 执行条件
|
* @param condition 执行条件
|
||||||
* @param column 单个字段
|
|
||||||
* @param columns 字段数组
|
* @param columns 字段数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
default Children orderByAsc(boolean condition, KProperty<?> column, KProperty<?>... columns) {
|
default Children orderByAsc(boolean condition, KProperty<?>... columns) {
|
||||||
return orderBy(condition, true, column, columns);
|
return orderBy(condition, true, null, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
default Children orderByAsc(boolean condition, String alias, KProperty<?>... columns) {
|
||||||
* ignore
|
return orderBy(condition, true, alias, columns);
|
||||||
*/
|
|
||||||
default Children orderByDesc(KProperty<?> column) {
|
|
||||||
return orderByDesc(true, column);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children orderByDesc(List<KProperty<?>> columns) {
|
default Children orderByDesc(List<KProperty<?>> columns) {
|
||||||
return orderByDesc(true, columns);
|
return orderByDesc(true, null, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
default Children orderByDesc(String alias, List<KProperty<?>> columns) {
|
||||||
* ignore
|
return orderByDesc(true, alias, columns);
|
||||||
*/
|
}
|
||||||
Children orderByDesc(boolean condition, List<KProperty<?>> columns);
|
|
||||||
|
|
||||||
/**
|
default Children orderByDesc(boolean condition, List<KProperty<?>> columns) {
|
||||||
* ignore
|
return orderByDesc(condition, null, columns);
|
||||||
*/
|
}
|
||||||
default Children orderByDesc(KProperty<?> column, KProperty<?>... columns) {
|
|
||||||
return orderByDesc(true, column, columns);
|
Children orderByDesc(boolean condition, String alias, List<KProperty<?>> columns);
|
||||||
|
|
||||||
|
|
||||||
|
default Children orderByDesc(KProperty<?>... columns) {
|
||||||
|
return orderByDesc(true, null, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children orderByDesc(String alias, KProperty<?>... columns) {
|
||||||
|
return orderByDesc(true, alias, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -352,12 +428,19 @@ public interface Func<Children> extends Serializable {
|
|||||||
* <p>例: orderByDesc("id", "name")</p>
|
* <p>例: orderByDesc("id", "name")</p>
|
||||||
*
|
*
|
||||||
* @param condition 执行条件
|
* @param condition 执行条件
|
||||||
* @param column 单个字段
|
|
||||||
* @param columns 字段数组
|
* @param columns 字段数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
default Children orderByDesc(boolean condition, KProperty<?> column, KProperty<?>... columns) {
|
default Children orderByDesc(boolean condition, KProperty<?>... columns) {
|
||||||
return orderBy(condition, false, column, columns);
|
return orderBy(condition, false, null, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children orderByDesc(boolean condition, String alias, KProperty<?>... columns) {
|
||||||
|
return orderBy(condition, false, alias, columns);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children orderBy(boolean condition, boolean isAsc, KProperty<?>... columns) {
|
||||||
|
return orderBy(condition, isAsc, null, columns);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -366,15 +449,12 @@ public interface Func<Children> extends Serializable {
|
|||||||
*
|
*
|
||||||
* @param condition 执行条件
|
* @param condition 执行条件
|
||||||
* @param isAsc 是否是 ASC 排序
|
* @param isAsc 是否是 ASC 排序
|
||||||
* @param column 单个字段
|
|
||||||
* @param columns 字段数组
|
* @param columns 字段数组
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children orderBy(boolean condition, boolean isAsc, KProperty<?> column, KProperty<?>... columns);
|
Children orderBy(boolean condition, boolean isAsc, String alias, KProperty<?>... columns);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children having(String sqlHaving, Object... params) {
|
default Children having(String sqlHaving, Object... params) {
|
||||||
return having(true, sqlHaving, params);
|
return having(true, sqlHaving, params);
|
||||||
}
|
}
|
||||||
@ -391,9 +471,7 @@ public interface Func<Children> extends Serializable {
|
|||||||
*/
|
*/
|
||||||
Children having(boolean condition, String sqlHaving, Object... params);
|
Children having(boolean condition, String sqlHaving, Object... params);
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children func(Consumer<Children> consumer) {
|
default Children func(Consumer<Children> consumer) {
|
||||||
return func(true, consumer);
|
return func(true, consumer);
|
||||||
}
|
}
|
||||||
|
@ -14,11 +14,33 @@ import java.io.Serializable;
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public interface OnCompare<Children> extends Serializable {
|
public interface OnCompare<Children> extends Serializable {
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children eq(KProperty<?> column, KProperty<?> val) {
|
default Children eq(KProperty<?> column, KProperty<?> val) {
|
||||||
return eq(true, column, val);
|
return eq(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return eq(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return eq(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return eq(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return eq(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return eq(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children eq(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return eq(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29,13 +51,35 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children eq(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children eq(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children ne(KProperty<?> column, KProperty<?> val) {
|
default Children ne(KProperty<?> column, KProperty<?> val) {
|
||||||
return ne(true, column, val);
|
return ne(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ne(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ne(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ne(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ne(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ne(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ne(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ne(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -46,13 +90,35 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children ne(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children ne(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children gt(KProperty<?> column, KProperty<?> val) {
|
default Children gt(KProperty<?> column, KProperty<?> val) {
|
||||||
return gt(true, column, val);
|
return gt(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return gt(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return gt(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return gt(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return gt(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return gt(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children gt(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return gt(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -63,13 +129,35 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children gt(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children gt(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children ge(KProperty<?> column, KProperty<?> val) {
|
default Children ge(KProperty<?> column, KProperty<?> val) {
|
||||||
return ge(true, column, val);
|
return ge(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ge(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ge(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ge(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ge(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return ge(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children ge(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return ge(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -80,13 +168,35 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children ge(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children ge(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children lt(KProperty<?> column, KProperty<?> val) {
|
default Children lt(KProperty<?> column, KProperty<?> val) {
|
||||||
return lt(true, column, val);
|
return lt(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return lt(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return lt(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return lt(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return lt(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return lt(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children lt(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return lt(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -97,13 +207,35 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children lt(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children lt(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ignore
|
|
||||||
*/
|
|
||||||
default Children le(KProperty<?> column, KProperty<?> val) {
|
default Children le(KProperty<?> column, KProperty<?> val) {
|
||||||
return le(true, column, val);
|
return le(true, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return le(true, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return le(true, null, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(String alias, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return le(true, alias, column, rightAlias, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(boolean condition, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return le(condition, null, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(boolean condition, String alias, KProperty<?> column, KProperty<?> val) {
|
||||||
|
return le(condition, alias, column, null, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
default Children le(boolean condition, KProperty<?> column, String rightAlias, KProperty<?> val) {
|
||||||
|
return le(condition, null, column, rightAlias, val);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -114,5 +246,5 @@ public interface OnCompare<Children> extends Serializable {
|
|||||||
* @param val 值
|
* @param val 值
|
||||||
* @return children
|
* @return children
|
||||||
*/
|
*/
|
||||||
Children le(boolean condition, KProperty<?> column, KProperty<?> val);
|
Children le(boolean condition, String alias, KProperty<?> column, String rightAlias, KProperty<?> val);
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,17 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.LEFT_JOIN, clazz, left, right);
|
return join(Constant.LEFT_JOIN, clazz, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* left join
|
||||||
|
*
|
||||||
|
* @param clazz 关联的实体类
|
||||||
|
* @param left 条件
|
||||||
|
* @param right 条件
|
||||||
|
*/
|
||||||
|
default Children leftJoin(Class<?> clazz, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.LEFT_JOIN, clazz, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* left join 多条件
|
* left join 多条件
|
||||||
* <p>
|
* <p>
|
||||||
@ -72,6 +83,17 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.LEFT_JOIN, clazz, alias, left, right);
|
return join(Constant.LEFT_JOIN, clazz, alias, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* left join
|
||||||
|
*
|
||||||
|
* @param clazz 关联的实体类
|
||||||
|
* @param left 条件
|
||||||
|
* @param right 条件
|
||||||
|
*/
|
||||||
|
default Children leftJoin(Class<?> clazz, String alias, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.LEFT_JOIN, clazz, alias, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* left join 多条件
|
* left join 多条件
|
||||||
* <p>
|
* <p>
|
||||||
@ -114,6 +136,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.RIGHT_JOIN, clazz, left, right);
|
return join(Constant.RIGHT_JOIN, clazz, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children rightJoin(Class<?> clazz, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.RIGHT_JOIN, clazz, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -142,6 +171,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.RIGHT_JOIN, clazz, alias, left, right);
|
return join(Constant.RIGHT_JOIN, clazz, alias, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children rightJoin(Class<?> clazz, String alias, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.RIGHT_JOIN, clazz, alias, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -171,6 +207,14 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.INNER_JOIN, clazz, on -> on.eq(left, right));
|
return join(Constant.INNER_JOIN, clazz, on -> on.eq(left, right));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children innerJoin(Class<?> clazz, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.INNER_JOIN, clazz, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -200,6 +244,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.INNER_JOIN, clazz, alias, on -> on.eq(left, right));
|
return join(Constant.INNER_JOIN, clazz, alias, on -> on.eq(left, right));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children innerJoin(Class<?> clazz, String alias, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.INNER_JOIN, clazz, alias, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -228,6 +279,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.FULL_JOIN, clazz, left, right);
|
return join(Constant.FULL_JOIN, clazz, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children fullJoin(Class<?> clazz, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.FULL_JOIN, clazz, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -256,6 +314,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(Constant.FULL_JOIN, clazz, alias, left, right);
|
return join(Constant.FULL_JOIN, clazz, alias, left, right);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore 参考 left join
|
||||||
|
*/
|
||||||
|
default Children fullJoin(Class<?> clazz, String alias, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(Constant.FULL_JOIN, clazz, alias, left, rightAlias, right);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ignore 参考 left join
|
* ignore 参考 left join
|
||||||
*/
|
*/
|
||||||
@ -292,6 +357,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(keyWord, clazz, on -> on.eq(left, right));
|
return join(keyWord, clazz, on -> on.eq(left, right));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore
|
||||||
|
*/
|
||||||
|
default Children join(String keyWord, Class<?> clazz, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(keyWord, clazz, on -> on.eq(left, rightAlias, right));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义连表关键词
|
* 自定义连表关键词
|
||||||
* <p>
|
* <p>
|
||||||
@ -333,6 +405,13 @@ public interface QueryJoin<Children, Entity> extends MPJBaseJoin<Entity>, String
|
|||||||
return join(keyWord, clazz, alias, on -> on.eq(left, right));
|
return join(keyWord, clazz, alias, on -> on.eq(left, right));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ignore
|
||||||
|
*/
|
||||||
|
default <T, X> Children join(String keyWord, Class<?> clazz, String alias, KProperty<?> left, String rightAlias, KProperty<?> right) {
|
||||||
|
return join(keyWord, clazz, alias, on -> on.eq(left, rightAlias, right));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 自定义连表关键词
|
* 自定义连表关键词
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -1,150 +0,0 @@
|
|||||||
//package com.github.yulichang.test.config;
|
|
||||||
//
|
|
||||||
//import com.baomidou.mybatisplus.core.injector.AbstractMethod;
|
|
||||||
//import com.baomidou.mybatisplus.core.injector.ISqlInjector;
|
|
||||||
//import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
||||||
//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
||||||
//import com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn;
|
|
||||||
//import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
|
||||||
//import com.github.yulichang.injector.MPJSqlInjector;
|
|
||||||
//import com.github.yulichang.test.util.ThreadLocalUtils;
|
|
||||||
//import org.apache.ibatis.cache.CacheKey;
|
|
||||||
//import org.apache.ibatis.executor.Executor;
|
|
||||||
//import org.apache.ibatis.executor.statement.StatementHandler;
|
|
||||||
//import org.apache.ibatis.mapping.BoundSql;
|
|
||||||
//import org.apache.ibatis.mapping.MappedStatement;
|
|
||||||
//import org.apache.ibatis.plugin.*;
|
|
||||||
//import org.apache.ibatis.session.ResultHandler;
|
|
||||||
//import org.apache.ibatis.session.RowBounds;
|
|
||||||
//import org.springframework.context.annotation.Bean;
|
|
||||||
//import org.springframework.context.annotation.Configuration;
|
|
||||||
//import org.springframework.context.annotation.Primary;
|
|
||||||
//import org.springframework.core.Ordered;
|
|
||||||
//import org.springframework.core.annotation.Order;
|
|
||||||
//import org.springframework.stereotype.Component;
|
|
||||||
//
|
|
||||||
//import java.sql.Connection;
|
|
||||||
//import java.util.List;
|
|
||||||
//import java.util.Objects;
|
|
||||||
//import java.util.StringTokenizer;
|
|
||||||
//
|
|
||||||
///**
|
|
||||||
// * mp 3.3.x
|
|
||||||
// */
|
|
||||||
//@Configuration
|
|
||||||
//public class MPConfig {
|
|
||||||
//
|
|
||||||
// @Bean
|
|
||||||
// public PaginationInterceptor mybatisPlusInterceptor() {
|
|
||||||
// return new PaginationInterceptor();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Bean
|
|
||||||
// @Primary
|
|
||||||
// @Order(Ordered.HIGHEST_PRECEDENCE)
|
|
||||||
// public ISqlInjector sqlInjector() {
|
|
||||||
// return new MPJSqlInjector() {
|
|
||||||
// @Override
|
|
||||||
// public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
|
|
||||||
// List<AbstractMethod> list = super.getMethodList(mapperClass);
|
|
||||||
// //添加你的方法
|
|
||||||
// list.add(new InsertBatchSomeColumn());
|
|
||||||
// return list;
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Component
|
|
||||||
// @Intercepts({
|
|
||||||
// @Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class}),
|
|
||||||
// @Signature(type = StatementHandler.class, method = "getBoundSql", args = {}),
|
|
||||||
// @Signature(type = Executor.class, method = "update", args = {MappedStatement.class, Object.class}),
|
|
||||||
// @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}),
|
|
||||||
// @Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}),
|
|
||||||
// })
|
|
||||||
// public static class SqlInterceptor implements Interceptor {
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public Object intercept(Invocation invocation) throws Throwable {
|
|
||||||
// Object target = invocation.getTarget();
|
|
||||||
// BoundSql boundSql = null;
|
|
||||||
// if (target instanceof StatementHandler) {
|
|
||||||
// boundSql = ((StatementHandler) target).getBoundSql();
|
|
||||||
// String sql = boundSql.getSql();
|
|
||||||
// List<String> strings = ThreadLocalUtils.get();
|
|
||||||
// if (CollectionUtils.isNotEmpty(strings)) {
|
|
||||||
// boolean flag = false;
|
|
||||||
// String ss = null;
|
|
||||||
// for (String s : strings) {
|
|
||||||
// if (sql != null && s != null) {
|
|
||||||
// String s1 = formatSql(sql);
|
|
||||||
// String s2 = formatSql(s);
|
|
||||||
// if (StringUtils.isNotBlank(s)) {
|
|
||||||
// if (!Objects.equals(s1.toLowerCase(), s2.toLowerCase())) {
|
|
||||||
// ss = s;
|
|
||||||
// } else {
|
|
||||||
// flag = true;
|
|
||||||
// break;
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// if (flag) {
|
|
||||||
// System.out.println("===============================================");
|
|
||||||
// System.out.println();
|
|
||||||
// System.out.println("pass");
|
|
||||||
// System.out.println();
|
|
||||||
// System.out.println("===============================================");
|
|
||||||
// } else {
|
|
||||||
// System.err.println("执行sql: " + removeExtraWhitespaces(sql));
|
|
||||||
// System.err.println("预期sql: " + removeExtraWhitespaces(ss));
|
|
||||||
// throw new RuntimeException("sql error");
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// System.out.println(boundSql);
|
|
||||||
// return invocation.proceed();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Override
|
|
||||||
// public Object plugin(Object target) {
|
|
||||||
// if (target instanceof Executor || target instanceof StatementHandler) {
|
|
||||||
// return Plugin.wrap(target, this);
|
|
||||||
// }
|
|
||||||
// return target;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private String formatSql(String sql) {
|
|
||||||
// if (StringUtils.isBlank(sql)) {
|
|
||||||
// return sql;
|
|
||||||
// }
|
|
||||||
// sql = sql.replaceAll("\n", "");
|
|
||||||
// sql = sql.replaceAll("\r", "");
|
|
||||||
// sql = sql.replaceAll("\t", "");
|
|
||||||
// return dg(sql);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private String dg(String str) {
|
|
||||||
// if (str.contains(" ")) {
|
|
||||||
// str = str.replaceAll(" ", "");
|
|
||||||
// return dg(str);
|
|
||||||
// }
|
|
||||||
// return str;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private String removeExtraWhitespaces(String original) {
|
|
||||||
// StringTokenizer tokenizer = new StringTokenizer(original);
|
|
||||||
// StringBuilder builder = new StringBuilder();
|
|
||||||
// boolean hasMoreTokens = tokenizer.hasMoreTokens();
|
|
||||||
// while (hasMoreTokens) {
|
|
||||||
// builder.append(tokenizer.nextToken());
|
|
||||||
// hasMoreTokens = tokenizer.hasMoreTokens();
|
|
||||||
// if (hasMoreTokens) {
|
|
||||||
// builder.append(' ');
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// return builder.toString();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
@ -97,6 +97,10 @@ public class MybatisPlusConfig {
|
|||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
|
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) {
|
||||||
String sql = boundSql.getSql();
|
String sql = boundSql.getSql();
|
||||||
|
check(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void check(String sql) {
|
||||||
List<String> sqlList = ThreadLocalUtils.get();
|
List<String> sqlList = ThreadLocalUtils.get();
|
||||||
if (CollectionUtils.isNotEmpty(sqlList)) {
|
if (CollectionUtils.isNotEmpty(sqlList)) {
|
||||||
if (sqlList.stream().anyMatch(e -> Objects.equals(formatSql(sql), formatSql(e)))) {
|
if (sqlList.stream().anyMatch(e -> Objects.equals(formatSql(sql), formatSql(e)))) {
|
||||||
@ -122,20 +126,7 @@ public class MybatisPlusConfig {
|
|||||||
if (sql.toUpperCase().startsWith("SELECT")) {
|
if (sql.toUpperCase().startsWith("SELECT")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<String> sqlList = ThreadLocalUtils.get();
|
check(sql);
|
||||||
if (CollectionUtils.isNotEmpty(sqlList)) {
|
|
||||||
if (sqlList.stream().anyMatch(e -> Objects.equals(formatSql(sql), formatSql(e)))) {
|
|
||||||
System.out.println("===============================================");
|
|
||||||
System.out.println();
|
|
||||||
System.out.println("pass");
|
|
||||||
System.out.println();
|
|
||||||
System.out.println("===============================================");
|
|
||||||
} else {
|
|
||||||
System.err.println("执行sql: " + SqlSourceBuilder.removeExtraWhitespaces(sql));
|
|
||||||
sqlList.forEach(i -> System.err.println("预期sql: " + SqlSourceBuilder.removeExtraWhitespaces(i)));
|
|
||||||
throw new RuntimeException("sql error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,8 +25,9 @@ class CustomWrapperTest {
|
|||||||
|
|
||||||
//自定义wrapper扩展
|
//自定义wrapper扩展
|
||||||
class CWrapper<T> : KtLambdaWrapper<T>() {
|
class CWrapper<T> : KtLambdaWrapper<T>() {
|
||||||
|
|
||||||
fun eqIfAbsent(column: KProperty<*>, `val`: Any?): CWrapper<T> {
|
fun eqIfAbsent(column: KProperty<*>, `val`: Any?): CWrapper<T> {
|
||||||
super.eq(Objects.nonNull(`val`), column, `val`)
|
eq(Objects.nonNull(`val`), column, `val`)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
package com.github.yulichang.test.kt.m
|
||||||
|
|
||||||
|
import com.github.yulichang.kt.KtLambdaWrapper
|
||||||
|
import com.github.yulichang.test.kt.entity.UserDO
|
||||||
|
import com.github.yulichang.test.util.ThreadLocalUtils
|
||||||
|
import com.github.yulichang.toolkit.KtWrappers
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest
|
||||||
|
import kotlin.reflect.KMutableProperty1
|
||||||
|
|
||||||
|
@SpringBootTest
|
||||||
|
class OrderByTest {
|
||||||
|
@BeforeEach
|
||||||
|
fun setUp() {
|
||||||
|
com.github.yulichang.test.util.Reset.reset()
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.junit.jupiter.api.Test
|
||||||
|
fun orderBy() {
|
||||||
|
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.id = ?) ORDER BY t.id ASC, t.`name` ASC, t.pid ASC"
|
||||||
|
)
|
||||||
|
val columList: List<KMutableProperty1<UserDO, *>> =
|
||||||
|
listOf<KMutableProperty1<UserDO, *>>(UserDO::id, UserDO::name, UserDO::pid)
|
||||||
|
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
|
||||||
|
.selectAll(UserDO::class.java)
|
||||||
|
.eq(UserDO::id, 1)
|
||||||
|
.orderByAsc(columList)
|
||||||
|
val list: List<UserDO> = wrapper.list()
|
||||||
|
list.forEach(System.out::println)
|
||||||
|
}
|
||||||
|
|
||||||
|
@org.junit.jupiter.api.Test
|
||||||
|
fun orderBy1() {
|
||||||
|
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.id = ?) GROUP BY t.id, t.`name`, t.pid"
|
||||||
|
)
|
||||||
|
val columList: List<KMutableProperty1<UserDO, *>> =
|
||||||
|
listOf<KMutableProperty1<UserDO, *>>(UserDO::id, UserDO::name, UserDO::pid)
|
||||||
|
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
|
||||||
|
.selectAll(UserDO::class.java)
|
||||||
|
.eq(UserDO::id, 1)
|
||||||
|
.groupBy(columList)
|
||||||
|
val list: List<UserDO> = wrapper.list()
|
||||||
|
list.forEach(System.out::println)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,88 @@
|
|||||||
|
package com.github.yulichang.test.kt.m
|
||||||
|
|
||||||
|
import com.github.yulichang.kt.KtLambdaWrapper
|
||||||
|
import com.github.yulichang.test.kt.entity.AddressDO
|
||||||
|
import com.github.yulichang.test.kt.entity.AreaDO
|
||||||
|
import com.github.yulichang.test.kt.entity.UserDO
|
||||||
|
import com.github.yulichang.test.kt.mapper.UserMapper
|
||||||
|
import com.github.yulichang.test.util.Reset
|
||||||
|
import com.github.yulichang.test.util.ThreadLocalUtils
|
||||||
|
import com.github.yulichang.toolkit.KtWrappers
|
||||||
|
import org.junit.jupiter.api.BeforeEach
|
||||||
|
import org.junit.jupiter.api.Test
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest
|
||||||
|
|
||||||
|
@SpringBootTest
|
||||||
|
class TableAliasTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private val userMapper: UserMapper? = null
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
fun setUp() {
|
||||||
|
Reset.reset()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun tableAlias() {
|
||||||
|
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 " +
|
||||||
|
"LEFT JOIN address addr1 ON (addr1.id = t.address_id) " +
|
||||||
|
"LEFT JOIN address addr2 ON (addr2.id = t.address_id2) " +
|
||||||
|
"LEFT JOIN area area1 ON (area1.id = addr1.area_id) " +
|
||||||
|
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
|
||||||
|
"GROUP BY t.id"
|
||||||
|
)
|
||||||
|
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
|
||||||
|
.selectAll(UserDO::class.java)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr1", AddressDO::id, UserDO::addressId)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr2", AddressDO::id, UserDO::addressId2)
|
||||||
|
.leftJoin(AreaDO::class.java, "area1", AreaDO::id, "addr1", AddressDO::areaId)
|
||||||
|
.groupBy(UserDO::id)
|
||||||
|
val dos: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
|
||||||
|
dos.forEach(System.out::println)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun tableAlias2() {
|
||||||
|
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 " +
|
||||||
|
"LEFT JOIN address addr1 ON (addr1.id = t.address_id) " +
|
||||||
|
"LEFT JOIN address addr2 ON (addr2.id = t.address_id2) " +
|
||||||
|
"LEFT JOIN area area1 ON (area1.id = addr2.area_id) " +
|
||||||
|
"WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
|
||||||
|
"GROUP BY t.id ORDER BY addr1.id DESC"
|
||||||
|
)
|
||||||
|
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
|
||||||
|
.selectAll(UserDO::class.java)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr1", AddressDO::id, UserDO::addressId)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr2", AddressDO::id, UserDO::addressId2)
|
||||||
|
.leftJoin(AreaDO::class.java, "area1", AreaDO::id, "addr2", AddressDO::areaId)
|
||||||
|
.groupBy(UserDO::id)
|
||||||
|
.orderByDesc("addr1", AddressDO::id)
|
||||||
|
val dos: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
|
||||||
|
dos.forEach(System.out::println)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun tableAliasEQ() {
|
||||||
|
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 " +
|
||||||
|
"LEFT JOIN address addr1 ON (addr1.id = t.address_id) " +
|
||||||
|
"LEFT JOIN address addr2 ON (addr2.id = t.address_id2) " +
|
||||||
|
"LEFT JOIN area area1 ON (area1.id = addr2.area_id) WHERE t.del = false AND addr1.del = false AND addr2.del = false AND area1.del = false " +
|
||||||
|
"AND (addr1.id = ? AND addr2.id = ? AND addr1.id = ?)"
|
||||||
|
)
|
||||||
|
val wrapper: KtLambdaWrapper<UserDO> = KtWrappers.query(UserDO::class.java)
|
||||||
|
.selectAll(UserDO::class.java)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr1", AddressDO::id, UserDO::addressId)
|
||||||
|
.leftJoin(AddressDO::class.java, "addr2", AddressDO::id, UserDO::addressId2)
|
||||||
|
.leftJoin(AreaDO::class.java, "area1", AreaDO::id, "addr2", AddressDO::areaId)
|
||||||
|
.eq("addr1", AddressDO::id, 1)
|
||||||
|
.eq("addr2", AddressDO::id, 2)
|
||||||
|
.eq("addr1", AddressDO::id, 3)
|
||||||
|
val dos: List<UserDO> = userMapper!!.selectJoinList(UserDO::class.java, wrapper)
|
||||||
|
dos.forEach(System.out::println)
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user