All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.jfunc.common.db.condition.Restrictions Maven / Gradle / Ivy

The newest version!
package top.jfunc.common.db.condition;

import top.jfunc.common.db.query.SqlKeyword;

import java.util.Collection;

/**
 * @author chenzhaoju
 */
public class Restrictions {

    public static SimpleExpression eq(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.EQ );
    }

    /*public static Criterion eqOrIsNull(String propertyName, Object value) {
        return value == null ? isNull( propertyName ) : eq( propertyName, value );
    }*/

    public static SimpleExpression ne(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.NE );
    }

    /*public static Criterion neOrIsNotNull(String propertyName, Object value) {
        return value == null ? isNotNull( propertyName ) : ne( propertyName, value );
    }*/

    public static SimpleExpression like(String propertyName, String value) {
        return new SimpleExpression( propertyName, value, Op.LIKE );
    }

    public static SimpleExpression like(String propertyName, String value, MatchMode matchMode) {
        return new SimpleExpression( propertyName, matchMode.toMatchString( value ), Op.LIKE );
    }

    public static SimpleExpression gt(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.GT);
    }


    public static SimpleExpression lt(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.LT );
    }


    public static SimpleExpression le(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.LE );
    }

    public static SimpleExpression ge(String propertyName, Object value) {
        return new SimpleExpression( propertyName, value, Op.GE );
    }


    public static Criterion between(String propertyName, Object lo, Object hi) {
        return new BetweenExpression( propertyName, lo, hi );
    }


    public static Criterion in(String propertyName, Object[] values) {
        return new InExpression( propertyName, values );
    }


    public static Criterion in(String propertyName, Collection values) {
        return new InExpression( propertyName, values.toArray() );
    }

    public static Criterion isNull(String propertyName) {
        return new NullExpression( propertyName );
    }


    public static Criterion isNotNull(String propertyName) {
        return new NotNullExpression( propertyName );
    }


    public static Criterion mapped(String propertyName, Op op, String key, Object value){
        return new MappedExpression(propertyName, op, key, value);
    }

    public static Conjunction and(Criterion... predicates) {
        return conjunction( predicates );
    }

    public static Conjunction and(Collection predicates) {
        return conjunction(predicates);
    }


    public static Disjunction or(Criterion... predicates) {
        return disjunction( predicates );
    }

    public static Criterion logicAnd(Criterion lhs, Criterion rhs) {
        return new LogicalExpression(lhs, rhs, SqlKeyword.AND.getKeyword());
    }
    public static Criterion logicOr(Criterion lhs, Criterion rhs) {
        return new LogicalExpression(lhs, rhs, SqlKeyword.OR.getKeyword());
    }

    /**
     * 自定义 SQL 查询
     * @param sql SQL 字符串
     * @param value 查询绑定值
     * @return 返回 Criterion 对象
     */
    public static Criterion sqlRestriction(String sql, Object value) {
        return new SimpleExpression( sql, value, Op.BLANK );
    }

    public static Conjunction conjunction() {
        return new Conjunction();
    }

    public static Conjunction conjunction(Criterion... conditions) {
        return new Conjunction( conditions );
    }

    public static Conjunction conjunction(Collection conditions) {
        return new Conjunction( conditions );
    }

    public static Disjunction disjunction() {
        return new Disjunction();
    }

    public static Disjunction disjunction(Criterion... conditions) {
        return new Disjunction( conditions );
    }

    protected Restrictions() {}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy