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

cn.org.atool.fluent.mybatis.model.IFormQuery Maven / Gradle / Ivy

package cn.org.atool.fluent.mybatis.model;

import cn.org.atool.fluent.mybatis.base.IEntity;
import cn.org.atool.fluent.mybatis.base.IRefs;
import cn.org.atool.fluent.mybatis.base.crud.FormSetter;
import cn.org.atool.fluent.mybatis.base.crud.IQuery;
import cn.org.atool.fluent.mybatis.base.mapper.IEntityMapper;

import static cn.org.atool.fluent.mybatis.base.model.SqlOpStr.*;

/**
 * 简单表单查询
 *
 * @param 
 * @param 
 * @author wudarui
 */
@SuppressWarnings({"unchecked", "rawtypes", "unused"})
public interface IFormQuery extends IQuery {
    /**
     * 对应的实体Entity类型
     *
     * @return 实体类类型
     */
    Class entityClass();

    S op(String op);

    default S eq() {
        return this.op(OP_EQ);
    }

    default S ne() {
        return this.op(OP_NE);
    }

    default S gt() {
        return this.op(OP_GT);
    }

    default S ge() {
        return this.op(OP_GE);
    }

    default S lt() {
        return this.op(OP_LT);
    }

    default S le() {
        return this.op(OP_LE);
    }

    default S like() {
        return this.op(OP_LIKE);
    }

    @Override
    IFormQuery distinct();

    @Override
    IFormQuery selectAll();

    @Override
    IFormQuery selectId();

    @Override
    IFormQuery limit(int limit);

    @Override
    IFormQuery limit(int start, int limit);

    @Override
    IFormQuery last(String lastSql);

    /**
     * 是否存在对应条件数据
     *
     * @return true: exist
     */
    default boolean exists() {
        IEntityMapper mapper = IRefs.mapper(this.entityClass());
        int count = mapper.count(this);
        return count > 0;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy