|
@@ -20,6 +20,7 @@ import com.baomidou.mybatisplus.core.conditions.interfaces.Compare;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Func;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Func;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Join;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Join;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Nested;
|
|
import com.baomidou.mybatisplus.core.conditions.interfaces.Nested;
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.segments.ColumnSegment;
|
|
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
|
|
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
|
|
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
|
|
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
|
|
import com.baomidou.mybatisplus.core.enums.SqlLike;
|
|
import com.baomidou.mybatisplus.core.enums.SqlLike;
|
|
@@ -27,7 +28,6 @@ import com.baomidou.mybatisplus.core.toolkit.*;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlScriptUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape;
|
|
import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape;
|
|
-import com.baomidou.mybatisplus.core.conditions.segments.ColumnSegment;
|
|
|
|
|
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
@@ -44,7 +44,7 @@ import static java.util.stream.Collectors.joining;
|
|
* @author hubin miemie HCL
|
|
* @author hubin miemie HCL
|
|
* @since 2017-05-26
|
|
* @since 2017-05-26
|
|
*/
|
|
*/
|
|
-@SuppressWarnings({"unchecked"})
|
|
|
|
|
|
+@SuppressWarnings({"unchecked", "serial"})
|
|
public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T, R, Children>> extends Wrapper<T>
|
|
public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T, R, Children>> extends Wrapper<T>
|
|
implements Compare<Children, R>, Nested<Children, Children>, Join<Children>, Func<Children, R> {
|
|
implements Compare<Children, R>, Nested<Children, Children>, Join<Children>, Func<Children, R> {
|
|
|
|
|
|
@@ -358,10 +358,10 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
|
|
public Children orderBy(boolean condition, boolean isAsc, R column, R... columns) {
|
|
public Children orderBy(boolean condition, boolean isAsc, R column, R... columns) {
|
|
return maybeDo(condition, () -> {
|
|
return maybeDo(condition, () -> {
|
|
final SqlKeyword mode = isAsc ? ASC : DESC;
|
|
final SqlKeyword mode = isAsc ? ASC : DESC;
|
|
- appendSqlSegments(ORDER_BY, columnToSqlSegment(columnSqlInjectFilter(column)), mode);
|
|
|
|
|
|
+ appendSqlSegments(ORDER_BY, columnToSqlSegment(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(columnSqlInjectFilter(c)), mode));
|
|
|
|
|
|
+ columnToSqlSegment(c), mode));
|
|
}
|
|
}
|
|
});
|
|
});
|
|
}
|
|
}
|
|
@@ -378,24 +378,14 @@ public abstract class AbstractWrapper<T, R, Children extends AbstractWrapper<T,
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Children orderBy(boolean condition, boolean isAsc, R column) {
|
|
public Children orderBy(boolean condition, boolean isAsc, R column) {
|
|
- return maybeDo(condition, () -> appendSqlSegments(ORDER_BY, columnToSqlSegment(columnSqlInjectFilter(column)),
|
|
|
|
|
|
+ return maybeDo(condition, () -> appendSqlSegments(ORDER_BY, columnToSqlSegment(column),
|
|
isAsc ? ASC : DESC));
|
|
isAsc ? ASC : DESC));
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public Children orderBy(boolean condition, boolean isAsc, List<R> columns) {
|
|
public Children orderBy(boolean condition, boolean isAsc, List<R> columns) {
|
|
return maybeDo(condition, () -> columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
|
return maybeDo(condition, () -> columns.forEach(c -> appendSqlSegments(ORDER_BY,
|
|
- columnToSqlSegment(columnSqlInjectFilter(c)), isAsc ? ASC : DESC)));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * 字段 SQL 注入过滤处理,子类重写实现过滤逻辑
|
|
|
|
- *
|
|
|
|
- * @param column 字段内容
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- protected R columnSqlInjectFilter(R column) {
|
|
|
|
- return column;
|
|
|
|
|
|
+ columnToSqlSegment(c), isAsc ? ASC : DESC)));
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|