mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
commit
1cefe509bc
@ -22,6 +22,7 @@ import com.mybatisflex.core.util.LambdaGetter;
|
|||||||
import com.mybatisflex.core.util.LambdaUtil;
|
import com.mybatisflex.core.util.LambdaUtil;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.function.BiPredicate;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +50,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R eq(Object value, Predicate<T> when) {
|
public <T> R eq(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.eq(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.eq(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -60,8 +61,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return eq(LambdaUtil.getQueryColumn(value));
|
return eq(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R eq(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R eq(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return eq(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.eq(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R ne(Object value) {
|
public R ne(Object value) {
|
||||||
@ -71,7 +79,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R ne(Object value, Predicate<T> when) {
|
public <T> R ne(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ne(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ne(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -82,8 +90,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return ne(LambdaUtil.getQueryColumn(value));
|
return ne(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R ne(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R ne(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return ne(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ne(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R like(Object value) {
|
public R like(Object value) {
|
||||||
@ -93,7 +108,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R like(Object value, Predicate<T> when) {
|
public <T> R like(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.like(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.like(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -107,7 +122,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R likeLeft(Object value, Predicate<T> when) {
|
public <T> R likeLeft(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.likeLeft(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.likeLeft(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -121,7 +136,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R likeRight(Object value, Predicate<T> when) {
|
public <T> R likeRight(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.likeRight(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.likeRight(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -135,7 +150,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R gt(Object value, Predicate<T> when) {
|
public <T> R gt(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.gt(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.gt(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -146,8 +161,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return gt(LambdaUtil.getQueryColumn(value));
|
return gt(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R gt(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R gt(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return gt(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.gt(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R ge(Object value) {
|
public R ge(Object value) {
|
||||||
@ -157,7 +179,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R ge(Object value, Predicate<T> when) {
|
public <T> R ge(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ge(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ge(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -168,8 +190,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return ge(LambdaUtil.getQueryColumn(value));
|
return ge(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R ge(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R ge(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return ge(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.ge(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R lt(Object value) {
|
public R lt(Object value) {
|
||||||
@ -179,7 +208,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R lt(Object value, Predicate<T> when) {
|
public <T> R lt(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.lt(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.lt(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -190,8 +219,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return lt(LambdaUtil.getQueryColumn(value));
|
return lt(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R lt(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R lt(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return lt(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.lt(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R le(Object value) {
|
public R le(Object value) {
|
||||||
@ -201,7 +237,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R le(Object value, Predicate<T> when) {
|
public <T> R le(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.le(value, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.le(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -212,8 +248,15 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return le(LambdaUtil.getQueryColumn(value));
|
return le(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R le(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> R le(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return le(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.le(LambdaUtil.getQueryColumn(value)).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public R isNull() {
|
public R isNull() {
|
||||||
@ -221,6 +264,10 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R isNull(Predicate<T> when) {
|
public <T> R isNull(Predicate<T> when) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.isNull(when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.isNull(when), connector);
|
||||||
return queryModel;
|
return queryModel;
|
||||||
@ -231,6 +278,10 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R isNotNull(Predicate<T> when) {
|
public <T> R isNotNull(Predicate<T> when) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.isNotNull(when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.isNotNull(when), connector);
|
||||||
return queryModel;
|
return queryModel;
|
||||||
@ -243,7 +294,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R in(Object[] arrays, Predicate<T> when) {
|
public <T> R in(T[] arrays, Predicate<T[]> when) {
|
||||||
//忽略 QueryWrapper.in("name", null) 的情况
|
//忽略 QueryWrapper.in("name", null) 的情况
|
||||||
if (arrays != null) {
|
if (arrays != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(arrays, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(arrays, when), connector);
|
||||||
@ -258,6 +309,10 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return this.queryModel;
|
return this.queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R in(R queryModel, Predicate<T> when) {
|
public <T> R in(R queryModel, Predicate<T> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(queryModel, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(queryModel, when), connector);
|
||||||
@ -272,7 +327,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R in(Collection<?> collection, Predicate<T> when) {
|
public <T extends Collection<?>> R in(T collection, Predicate<T> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(collection, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.in(collection, when), connector);
|
||||||
}
|
}
|
||||||
@ -286,7 +341,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R notIn(Object[] arrays, Predicate<T> when) {
|
public <T> R notIn(T[] arrays, Predicate<T[]> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(arrays, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(arrays, when), connector);
|
||||||
}
|
}
|
||||||
@ -300,7 +355,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R notIn(Collection<?> collection, Predicate<T> when) {
|
public <T extends Collection<?>> R notIn(T collection, Predicate<T> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(collection, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(collection, when), connector);
|
||||||
}
|
}
|
||||||
@ -314,6 +369,10 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return this.queryModel;
|
return this.queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> R notIn(R queryModel, Predicate<T> when) {
|
public <T> R notIn(R queryModel, Predicate<T> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(queryModel, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notIn(queryModel, when), connector);
|
||||||
@ -328,7 +387,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R between(Object start, Object end, Predicate<T> when) {
|
public <S, E> R between(S start, E end, BiPredicate<S, E> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.between(start, end, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.between(start, end, when), connector);
|
||||||
}
|
}
|
||||||
@ -342,7 +401,7 @@ public class WhereBuilder<R extends QueryModel<R>> {
|
|||||||
return queryModel;
|
return queryModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> R notBetween(Object start, Object end, Predicate<T> when) {
|
public <S, E> R notBetween(S start, E end, BiPredicate<S, E> when) {
|
||||||
if (queryModel != null) {
|
if (queryModel != null) {
|
||||||
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notBetween(start, end, when), connector);
|
CPI.addWhereQueryCondition(queryModel.queryWrapper(), queryColumn.notBetween(start, end, when), connector);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -45,7 +45,9 @@ public class If {
|
|||||||
* 查看某个对象是否为空,支持数组、集合、map 等
|
* 查看某个对象是否为空,支持数组、集合、map 等
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object
|
||||||
|
* @deprecated 无泛型,多 instanceof 判断
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static boolean notEmpty(Object object) {
|
public static boolean notEmpty(Object object) {
|
||||||
if (object == null) {
|
if (object == null) {
|
||||||
return false;
|
return false;
|
||||||
@ -74,7 +76,9 @@ public class If {
|
|||||||
* 查看某个对象是否为空数据 或者 null
|
* 查看某个对象是否为空数据 或者 null
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object
|
||||||
|
* @deprecated 无泛型,多 instanceof 判断
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public static boolean isEmpty(Object object) {
|
public static boolean isEmpty(Object object) {
|
||||||
return !notEmpty(object);
|
return !notEmpty(object);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import com.mybatisflex.core.util.*;
|
|||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.BiPredicate;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -147,11 +148,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> QueryCondition eq(Object value, Predicate<T> fn) {
|
public <T> QueryCondition eq(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.EQUALS, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.EQUALS, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -167,11 +168,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, value);
|
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition ne(Object value, Predicate<T> fn) {
|
public <T> QueryCondition ne(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -187,11 +188,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value + "%");
|
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition like(Object value, Predicate<T> fn) {
|
public <T> QueryCondition like(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value + "%").when(fn);
|
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value + "%").when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -202,11 +203,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LIKE, value + "%");
|
return QueryCondition.create(this, SqlConsts.LIKE, value + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition likeLeft(Object value, Predicate<T> fn) {
|
public <T> QueryCondition likeLeft(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LIKE, value + "%").when(fn);
|
return QueryCondition.create(this, SqlConsts.LIKE, value + "%").when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -217,11 +218,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value);
|
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition likeRight(Object value, Predicate<T> fn) {
|
public <T> QueryCondition likeRight(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value).when(fn);
|
return QueryCondition.create(this, SqlConsts.LIKE, "%" + value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -232,11 +233,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LIKE, value);
|
return QueryCondition.create(this, SqlConsts.LIKE, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition likeRaw(Object value, Predicate<T> fn) {
|
public <T> QueryCondition likeRaw(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LIKE, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.LIKE, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -252,11 +253,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value + "%");
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notLike(Object value, Predicate<T> fn) {
|
public <T> QueryCondition notLike(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value + "%").when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value + "%").when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -267,11 +268,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, value + "%");
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, value + "%");
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notLikeLeft(Object value, Predicate<T> fn) {
|
public <T> QueryCondition notLikeLeft(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, value + "%").when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, value + "%").when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -282,11 +283,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value);
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notLikeRight(Object value, Predicate<T> fn) {
|
public <T> QueryCondition notLikeRight(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value).when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_LIKE, "%" + value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -302,11 +303,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.GT, value);
|
return QueryCondition.create(this, SqlConsts.GT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition gt(Object value, Predicate<T> fn) {
|
public <T> QueryCondition gt(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.GT, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.GT, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -321,11 +322,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.GE, value);
|
return QueryCondition.create(this, SqlConsts.GE, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition ge(Object value, Predicate<T> fn) {
|
public <T> QueryCondition ge(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.GE, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.GE, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -340,11 +341,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LT, value);
|
return QueryCondition.create(this, SqlConsts.LT, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition lt(Object value, Predicate<T> fn) {
|
public <T> QueryCondition lt(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LT, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.LT, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -359,11 +360,11 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.LE, value);
|
return QueryCondition.create(this, SqlConsts.LE, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition le(Object value, Predicate<T> fn) {
|
public <T> QueryCondition le(T value, Predicate<T> fn) {
|
||||||
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
if (value == null || QueryColumnBehavior.shouldIgnoreValue(value)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.create(this, SqlConsts.LE, value).when(fn);
|
return QueryCondition.create(this, SqlConsts.LE, value).when(fn.test(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -376,6 +377,10 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.IS_NULL, null);
|
return QueryCondition.create(this, SqlConsts.IS_NULL, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> QueryCondition isNull(Predicate<T> fn) {
|
public <T> QueryCondition isNull(Predicate<T> fn) {
|
||||||
return QueryCondition.create(this, SqlConsts.IS_NULL, null).when(fn);
|
return QueryCondition.create(this, SqlConsts.IS_NULL, null).when(fn);
|
||||||
}
|
}
|
||||||
@ -390,6 +395,10 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.IS_NOT_NULL, null);
|
return QueryCondition.create(this, SqlConsts.IS_NOT_NULL, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> QueryCondition isNotNull(Predicate<T> fn) {
|
public <T> QueryCondition isNotNull(Predicate<T> fn) {
|
||||||
return QueryCondition.create(this, SqlConsts.IS_NOT_NULL, null).when(fn);
|
return QueryCondition.create(this, SqlConsts.IS_NOT_NULL, null).when(fn);
|
||||||
}
|
}
|
||||||
@ -415,7 +424,7 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> QueryCondition in(Object[] arrays, Predicate<T> fn) {
|
public <T> QueryCondition in(T[] arrays, Predicate<T[]> fn) {
|
||||||
//忽略 QueryWrapper.in("name", null) 的情况
|
//忽略 QueryWrapper.in("name", null) 的情况
|
||||||
if (arrays == null || arrays.length == 0 || (arrays.length == 1 && arrays[0] == null) || QueryColumnBehavior.shouldIgnoreValue(arrays)) {
|
if (arrays == null || arrays.length == 0 || (arrays.length == 1 && arrays[0] == null) || QueryColumnBehavior.shouldIgnoreValue(arrays)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
@ -425,7 +434,7 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.EQUALS, arrays[0]);
|
return QueryCondition.create(this, SqlConsts.EQUALS, arrays[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QueryCondition.create(this, SqlConsts.IN, arrays).when(fn);
|
return QueryCondition.create(this, SqlConsts.IN, arrays).when(fn.test(arrays));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -442,6 +451,10 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> QueryCondition in(QueryWrapper queryWrapper, Predicate<T> fn) {
|
public <T> QueryCondition in(QueryWrapper queryWrapper, Predicate<T> fn) {
|
||||||
if (queryWrapper == null || QueryColumnBehavior.shouldIgnoreValue(queryWrapper)) {
|
if (queryWrapper == null || QueryColumnBehavior.shouldIgnoreValue(queryWrapper)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
@ -457,17 +470,17 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
* @return QueryCondition
|
* @return QueryCondition
|
||||||
*/
|
*/
|
||||||
public QueryCondition in(Collection<?> collection) {
|
public QueryCondition in(Collection<?> collection) {
|
||||||
if (collection != null && !collection.isEmpty() && !QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
if (collection == null || collection.isEmpty() || QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
||||||
return in(collection.toArray());
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.createEmpty();
|
return in(collection.toArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition in(Collection<?> collection, Predicate<T> fn) {
|
public <T extends Collection<?>> QueryCondition in(T collection, Predicate<T> fn) {
|
||||||
if (collection != null && !collection.isEmpty() && !QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
if (collection == null || collection.isEmpty() || QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
||||||
return in(collection.toArray(), fn);
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.createEmpty();
|
return in(collection.toArray()).when(fn.test(collection));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -489,7 +502,7 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_IN, arrays);
|
return QueryCondition.create(this, SqlConsts.NOT_IN, arrays);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notIn(Object[] arrays, Predicate<T> fn) {
|
public <T> QueryCondition notIn(T[] arrays, Predicate<T[]> fn) {
|
||||||
//忽略 QueryWrapper.notIn("name", null) 的情况
|
//忽略 QueryWrapper.notIn("name", null) 的情况
|
||||||
if (arrays == null || arrays.length == 0 || (arrays.length == 1 && arrays[0] == null) || QueryColumnBehavior.shouldIgnoreValue(arrays)) {
|
if (arrays == null || arrays.length == 0 || (arrays.length == 1 && arrays[0] == null) || QueryColumnBehavior.shouldIgnoreValue(arrays)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
@ -499,7 +512,7 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, arrays[0]);
|
return QueryCondition.create(this, SqlConsts.NOT_EQUALS, arrays[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_IN, arrays).when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_IN, arrays).when(fn.test(arrays));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -510,17 +523,17 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
* @return QueryCondition
|
* @return QueryCondition
|
||||||
*/
|
*/
|
||||||
public QueryCondition notIn(Collection<?> collection) {
|
public QueryCondition notIn(Collection<?> collection) {
|
||||||
if (collection != null && !collection.isEmpty() && !QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
if (collection == null || collection.isEmpty() || QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
||||||
return notIn(collection.toArray());
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.createEmpty();
|
return notIn(collection.toArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notIn(Collection<?> collection, Predicate<T> fn) {
|
public <T extends Collection<?>> QueryCondition notIn(T collection, Predicate<T> fn) {
|
||||||
if (collection != null && !collection.isEmpty() && !QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
if (collection == null || collection.isEmpty() || QueryColumnBehavior.shouldIgnoreValue(collection)) {
|
||||||
return notIn(collection.toArray(), fn);
|
return QueryCondition.createEmpty();
|
||||||
}
|
}
|
||||||
return QueryCondition.createEmpty();
|
return notIn(collection.toArray()).when(fn.test(collection));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -536,6 +549,10 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> QueryCondition notIn(QueryWrapper queryWrapper, Predicate<T> fn) {
|
public <T> QueryCondition notIn(QueryWrapper queryWrapper, Predicate<T> fn) {
|
||||||
if (queryWrapper == null || QueryColumnBehavior.shouldIgnoreValue(queryWrapper)) {
|
if (queryWrapper == null || QueryColumnBehavior.shouldIgnoreValue(queryWrapper)) {
|
||||||
return QueryCondition.createEmpty();
|
return QueryCondition.createEmpty();
|
||||||
@ -554,8 +571,8 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.BETWEEN, new Object[]{start, end});
|
return QueryCondition.create(this, SqlConsts.BETWEEN, new Object[]{start, end});
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition between(Object start, Object end, Predicate<T> fn) {
|
public <S, E> QueryCondition between(S start, E end, BiPredicate<S, E> fn) {
|
||||||
return QueryCondition.create(this, SqlConsts.BETWEEN, new Object[]{start, end}).when(fn);
|
return QueryCondition.create(this, SqlConsts.BETWEEN, new Object[]{start, end}).when(fn.test(start, end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -569,8 +586,8 @@ public class QueryColumn implements CloneSupport<QueryColumn> {
|
|||||||
return QueryCondition.create(this, SqlConsts.NOT_BETWEEN, new Object[]{start, end});
|
return QueryCondition.create(this, SqlConsts.NOT_BETWEEN, new Object[]{start, end});
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> QueryCondition notBetween(Object start, Object end, Predicate<T> fn) {
|
public <S, E> QueryCondition notBetween(S start, E end, BiPredicate<S, E> fn) {
|
||||||
return QueryCondition.create(this, SqlConsts.NOT_BETWEEN, new Object[]{start, end}).when(fn);
|
return QueryCondition.create(this, SqlConsts.NOT_BETWEEN, new Object[]{start, end}).when(fn.test(start, end));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -24,8 +24,8 @@ import com.mybatisflex.core.util.ObjectUtil;
|
|||||||
|
|
||||||
import java.lang.reflect.Array;
|
import java.lang.reflect.Array;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.function.BooleanSupplier;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
import java.util.function.Supplier;
|
|
||||||
|
|
||||||
public class QueryCondition implements CloneSupport<QueryCondition> {
|
public class QueryCondition implements CloneSupport<QueryCondition> {
|
||||||
|
|
||||||
@ -96,17 +96,44 @@ public class QueryCondition implements CloneSupport<QueryCondition> {
|
|||||||
this.logic = logic;
|
this.logic = logic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态条件构造。
|
||||||
|
*
|
||||||
|
* @param effective 是否启用该条件
|
||||||
|
* @return {@link QueryCondition}
|
||||||
|
*/
|
||||||
public QueryCondition when(boolean effective) {
|
public QueryCondition when(boolean effective) {
|
||||||
this.effective = effective;
|
this.effective = effective;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void when(Supplier<Boolean> fn) {
|
|
||||||
Boolean effective = fn.get();
|
/**
|
||||||
this.effective = (effective != null && effective);
|
* 动态条件构造。
|
||||||
|
*
|
||||||
|
* @param fn 是否启用该条件
|
||||||
|
* @return {@link QueryCondition}
|
||||||
|
*/
|
||||||
|
public QueryCondition when(BooleanSupplier fn) {
|
||||||
|
this.effective = fn.getAsBoolean();
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>动态条件构造。
|
||||||
|
*
|
||||||
|
* <p>推荐将 {@link Predicate} 推断写在填写的值的后面,以确保泛型对应,例如:
|
||||||
|
* <pre>{@code
|
||||||
|
* ACCOUNT.ID.in(idList, CollectionUtil::isNotEmpty);
|
||||||
|
* }</pre>
|
||||||
|
*
|
||||||
|
* @see #when(boolean)
|
||||||
|
* @see #when(BooleanSupplier)
|
||||||
|
* @deprecated 由于 {@link QueryCondition} 中属性 {@link #value} 的类型为 Object
|
||||||
|
* 类型,没有使用泛型,所以该方法泛型推断可能会出现问题。
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
public <T> QueryCondition when(Predicate<T> fn) {
|
public <T> QueryCondition when(Predicate<T> fn) {
|
||||||
Object val = this.value;
|
Object val = this.value;
|
||||||
if ((SqlConsts.LIKE.equals(logic) || SqlConsts.NOT_LIKE.equals(logic))
|
if ((SqlConsts.LIKE.equals(logic) || SqlConsts.NOT_LIKE.equals(logic))
|
||||||
|
|||||||
@ -19,6 +19,7 @@ import com.mybatisflex.core.util.LambdaGetter;
|
|||||||
import com.mybatisflex.core.util.LambdaUtil;
|
import com.mybatisflex.core.util.LambdaUtil;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.function.BiPredicate;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
||||||
@ -47,7 +48,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> Wrapper eq(Object value, Predicate<T> when) {
|
public <T> Wrapper eq(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.eq(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.eq(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -59,9 +60,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return eq(LambdaUtil.getQueryColumn(value));
|
return eq(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper eq(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper eq(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return eq(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.eq(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -77,7 +84,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper ne(Object value, Predicate<T> when) {
|
public <T> Wrapper ne(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.ne(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.ne(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -89,8 +96,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper ne(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper ne(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return ne(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.ne(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -106,7 +120,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper like(Object value, Predicate<T> when) {
|
public <T> Wrapper like(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.like(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.like(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -121,7 +135,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper likeLeft(Object value, Predicate<T> when) {
|
public <T> Wrapper likeLeft(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.likeLeft(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.likeLeft(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -136,7 +150,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper likeRight(Object value, Predicate<T> when) {
|
public <T> Wrapper likeRight(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.likeRight(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.likeRight(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -155,7 +169,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper gt(Object value, Predicate<T> when) {
|
public <T> Wrapper gt(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.gt(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.gt(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -166,9 +180,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return gt(LambdaUtil.getQueryColumn(value));
|
return gt(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper gt(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper gt(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return gt(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.gt(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -184,7 +204,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper ge(Object value, Predicate<T> when) {
|
public <T> Wrapper ge(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.ge(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.ge(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -195,9 +215,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return ge(LambdaUtil.getQueryColumn(value));
|
return ge(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper ge(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper ge(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return ge(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.ge(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -212,7 +238,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper lt(Object value, Predicate<T> when) {
|
public <T> Wrapper lt(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.lt(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.lt(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -223,9 +249,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return lt(LambdaUtil.getQueryColumn(value));
|
return lt(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper lt(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper lt(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return lt(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.lt(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -241,7 +273,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> Wrapper le(Object value, Predicate<T> when) {
|
public <T> Wrapper le(T value, Predicate<T> when) {
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.le(value, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.le(value, when), connector);
|
||||||
}
|
}
|
||||||
@ -252,9 +284,15 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return le(LambdaUtil.getQueryColumn(value));
|
return le(LambdaUtil.getQueryColumn(value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated {@link Predicate} 泛型参数无效
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper le(LambdaGetter<T> value, Predicate<T> when) {
|
public <T> Wrapper le(LambdaGetter<T> value, Predicate<T> when) {
|
||||||
return le(LambdaUtil.getQueryColumn(value), when);
|
if (value != null) {
|
||||||
|
queryWrapper.addWhereQueryCondition(queryColumn.le(value).when(when), connector);
|
||||||
|
}
|
||||||
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -268,6 +306,10 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper isNull(Predicate<T> when) {
|
public <T> Wrapper isNull(Predicate<T> when) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.isNull(when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.isNull(when), connector);
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
@ -284,6 +326,10 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper isNotNull(Predicate<T> when) {
|
public <T> Wrapper isNotNull(Predicate<T> when) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.isNotNull(when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.isNotNull(when), connector);
|
||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
@ -303,7 +349,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper in(Object[] arrays, Predicate<T> when) {
|
public <T> Wrapper in(T[] arrays, Predicate<T[]> when) {
|
||||||
//忽略 QueryWrapper.in("name", null) 的情况
|
//忽略 QueryWrapper.in("name", null) 的情况
|
||||||
if (arrays != null) {
|
if (arrays != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.in(arrays, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.in(arrays, when), connector);
|
||||||
@ -324,6 +370,10 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return this.queryWrapper;
|
return this.queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper in(QueryWrapper queryWrapper, Predicate<T> when) {
|
public <T> Wrapper in(QueryWrapper queryWrapper, Predicate<T> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
this.queryWrapper.addWhereQueryCondition(queryColumn.in(queryWrapper, when), connector);
|
this.queryWrapper.addWhereQueryCondition(queryColumn.in(queryWrapper, when), connector);
|
||||||
@ -345,7 +395,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper in(Collection<?> collection, Predicate<T> when) {
|
public <T extends Collection<?>> Wrapper in(T collection, Predicate<T> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.in(collection, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.in(collection, when), connector);
|
||||||
}
|
}
|
||||||
@ -365,7 +415,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper notIn(Object[] arrays, Predicate<T> when) {
|
public <T> Wrapper notIn(T[] arrays, Predicate<T[]> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.notIn(arrays, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.notIn(arrays, when), connector);
|
||||||
}
|
}
|
||||||
@ -386,7 +436,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper notIn(Collection<?> collection, Predicate<T> when) {
|
public <T extends Collection<?>> Wrapper notIn(T collection, Predicate<T> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.notIn(collection, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.notIn(collection, when), connector);
|
||||||
}
|
}
|
||||||
@ -405,6 +455,10 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return this.queryWrapper;
|
return this.queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated 无法推断泛型
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
public <T> Wrapper notIn(QueryWrapper queryWrapper, Predicate<T> when) {
|
public <T> Wrapper notIn(QueryWrapper queryWrapper, Predicate<T> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
this.queryWrapper.addWhereQueryCondition(queryColumn.notIn(queryWrapper, when), connector);
|
this.queryWrapper.addWhereQueryCondition(queryColumn.notIn(queryWrapper, when), connector);
|
||||||
@ -427,7 +481,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public <T> Wrapper between(Object start, Object end, Predicate<T> when) {
|
public <S, E> Wrapper between(S start, E end, BiPredicate<S, E> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.between(start, end, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.between(start, end, when), connector);
|
||||||
}
|
}
|
||||||
@ -448,7 +502,7 @@ public class QueryConditionBuilder<Wrapper extends QueryWrapper> {
|
|||||||
return queryWrapper;
|
return queryWrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> Wrapper notBetween(Object start, Object end, Predicate<T> when) {
|
public <S, E> Wrapper notBetween(S start, E end, BiPredicate<S, E> when) {
|
||||||
if (queryWrapper != null) {
|
if (queryWrapper != null) {
|
||||||
queryWrapper.addWhereQueryCondition(queryColumn.notBetween(start, end, when), connector);
|
queryWrapper.addWhereQueryCondition(queryColumn.notBetween(start, end, when), connector);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -291,7 +291,7 @@ public class QueryWrapper extends BaseQueryWrapper<QueryWrapper> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public QueryWrapper or(Consumer<QueryWrapper> consumer, boolean condition) {
|
public QueryWrapper or(Consumer<QueryWrapper> consumer, boolean condition) {
|
||||||
if (condition) {
|
if (!condition) {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
QueryWrapper newWrapper = new QueryWrapper();
|
QueryWrapper newWrapper = new QueryWrapper();
|
||||||
|
|||||||
@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||||
|
* <p>
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.mybatisflex.coretest;
|
||||||
|
|
||||||
|
import com.mybatisflex.core.query.QueryWrapper;
|
||||||
|
import com.mybatisflex.core.util.CollectionUtil;
|
||||||
|
import com.mybatisflex.core.util.StringUtil;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.mybatisflex.coretest.table.AccountTableDef.ACCOUNT;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动态条件测试。
|
||||||
|
*
|
||||||
|
* @author 王帅
|
||||||
|
* @since 2023-08-10
|
||||||
|
*/
|
||||||
|
public class DynamicConditionTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test01() {
|
||||||
|
String sql = QueryWrapper.create()
|
||||||
|
.from(ACCOUNT)
|
||||||
|
.where(ACCOUNT.AGE.ge(18))
|
||||||
|
.or(qw -> qw.where(ACCOUNT.ID.eq(1)), false)
|
||||||
|
.toSQL();
|
||||||
|
|
||||||
|
System.out.println(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test02() {
|
||||||
|
List<Integer> idList = Arrays.asList(1, 2, 3);
|
||||||
|
|
||||||
|
String sql = QueryWrapper.create()
|
||||||
|
.from(ACCOUNT)
|
||||||
|
.where(ACCOUNT.ID.in(idList).when(false))
|
||||||
|
.where(ACCOUNT.ID.in(idList, CollectionUtil::isNotEmpty))
|
||||||
|
.where(ACCOUNT.ID.in(idList).when(idList::isEmpty))
|
||||||
|
.toSQL();
|
||||||
|
|
||||||
|
System.out.println(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test03() {
|
||||||
|
String sql = QueryWrapper.create()
|
||||||
|
.from(ACCOUNT)
|
||||||
|
.where(ACCOUNT.ID.eq("1", StringUtil::isNumeric))
|
||||||
|
.toSQL();
|
||||||
|
|
||||||
|
System.out.println(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test04() {
|
||||||
|
String sql = QueryWrapper.create()
|
||||||
|
.from(ACCOUNT)
|
||||||
|
.where(ACCOUNT.ID.between('1', '2', (start, end) -> start < end))
|
||||||
|
.toSQL();
|
||||||
|
|
||||||
|
System.out.println(sql);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -29,7 +29,7 @@ import java.util.Objects;
|
|||||||
* @author 王帅
|
* @author 王帅
|
||||||
* @since 2023-06-07
|
* @since 2023-06-07
|
||||||
*/
|
*/
|
||||||
@Table("tb_good")
|
@Table(value = "tb_good", onSet = GoodOnSetListener.class)
|
||||||
public class Good extends Model<Good> {
|
public class Good extends Model<Good> {
|
||||||
|
|
||||||
@Id(keyType = KeyType.Auto)
|
@Id(keyType = KeyType.Auto)
|
||||||
|
|||||||
@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||||
|
* <p>
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.mybatisflex.test.model;
|
||||||
|
|
||||||
|
import com.mybatisflex.annotation.SetListener;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 王帅
|
||||||
|
* @since 2023-08-11
|
||||||
|
*/
|
||||||
|
public class GoodOnSetListener implements SetListener {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object onSet(Object entity, String property, Object value) {
|
||||||
|
System.out.println("Good: " + property + " --- " + value);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user