
cn.org.atool.fluent.mybatis.segment.where.StringWhere Maven / Gradle / Ivy
package cn.org.atool.fluent.mybatis.segment.where;
import cn.org.atool.fluent.mybatis.base.crud.IBaseQuery;
import cn.org.atool.fluent.mybatis.ifs.Ifs;
import cn.org.atool.fluent.mybatis.mapper.SqlLike;
import cn.org.atool.fluent.mybatis.segment.WhereBase;
import java.util.function.Predicate;
import static cn.org.atool.fluent.mybatis.base.model.SqlOp.LIKE;
import static cn.org.atool.fluent.mybatis.base.model.SqlOp.NOT_LIKE;
/**
* 字符串相关的比较
*
* @param
* @param
*/
@SuppressWarnings({"unused"})
public interface StringWhere<
WHERE extends WhereBase,
NQ extends IBaseQuery, NQ>
> extends ObjectWhere {
/**
* like '%value%'
*
* @param value 条件值
* @return self
*/
default WHERE like(String value) {
return this.apply(LIKE, SqlLike.like(value));
}
/**
* like '%value%'
*
* @param value 条件值
* @param when 成立条件
* @return self
*/
default WHERE like(String value, Predicate when) {
return this.apply(args -> when.test(value), LIKE, SqlLike.like(value));
}
/**
* 按Ifs条件设置where值
*
* @param ifs if conditions
* @param type
* @return WHERE
*/
default WHERE like(Ifs ifs) {
return this.apply(LIKE, ifs);
}
/**
* not like '%value%'
*
* @param value 条件值
* @return self
*/
default WHERE notLike(String value) {
return this.apply(NOT_LIKE, SqlLike.like(value));
}
/**
* not like '%value%'
*
* @param value 条件值
* @param when 成立条件
* @return self
*/
default WHERE notLike(String value, Predicate when) {
return this.apply(args -> when.test(value), NOT_LIKE, SqlLike.like(value));
}
/**
* 按Ifs条件设置where值
*
* @param ifs if conditions
* @param type
* @return WHERE
*/
default WHERE notLike(Ifs ifs) {
return this.apply(NOT_LIKE, ifs);
}
/**
* like '%value'
*
* @param value left like value
* @return where
*/
default WHERE likeLeft(String value) {
return this.apply(LIKE, SqlLike.left(value));
}
/**
* like '%value'
*
* @param value left like value
* @param when 执行条件
* @return where
*/
default WHERE likeLeft(String value, Predicate when) {
return this.apply(args -> when.test(value), LIKE, SqlLike.left(value));
}
/**
* like 'value%'
*
* @param value right like value
* @return where
*/
default WHERE likeRight(String value) {
return this.apply(LIKE, SqlLike.right(value));
}
/**
* like 'value%'
*
* @param value right like value
* @param when 执行条件
* @return where
*/
default WHERE likeRight(String value, Predicate when) {
return this.apply(args -> when.test(value), LIKE, SqlLike.right(value));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy