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

cn.org.atool.fluent.mybatis.base.crud.IDefaultGetter Maven / Gradle / Ivy

package cn.org.atool.fluent.mybatis.base.crud;

import cn.org.atool.fluent.mybatis.base.IEntity;

/**
 * 进行默认设置
 *
 * @author wudarui
 */
@SuppressWarnings({"rawtypes"})
public interface IDefaultGetter {
    /**
     * 对entity设置默认值
     * 默认值行为根据 {@link IDefaultSetter#setInsertDefault(IEntity)}来
     *
     * @param entity 实例
     */
    void setEntityByDefault(IEntity entity);

    /**
     * 创建一个空查询器(不包括{@link IDefaultSetter#setQueryDefault(IQuery)} 设置的默认条件)
     *
     * @param  IQuery类型
     * @return IQuery
     */
     Q query();

    /**
     * 实例化查询构造器
     * o - 设置默认查询条件
     *
     * @return 查询构造器
     */
     Q defaultQuery();

    /**
     * 创建一个更新器(不包括{@link IDefaultSetter#setUpdateDefault(IUpdate)} 设置的默认条件)
     *
     * @param  IUpdate类型
     * @return IUpdate
     */
     U updater();

    /**
     * 实例化更新构造器
     * o - 设置默认更新条件
     *
     * @return 更新构造器
     */
     U defaultUpdater();

    /**
     * 自动分配表别名查询构造器(join查询的时候需要定义表别名)
     * 如果要自定义别名, 使用方法 {@link #aliasQuery(String)}
     *
     * @param  IQuery类型
     * @return IQuery
     */
     Q aliasQuery();

    /**
     * 实例化查询构造器
     * o - 设置默认查询条件
     * o - 设置别名alias
     *
     * @param alias 别名
     * @return 查询构造器
     */
     Q aliasQuery(String alias);

    /**
     * 关联查询
     * o - 设置默认查询条件
     * o - 自动别名alias
     * o - 设置变量实例来自From查询实例
     *
     * @param fromQuery 关联查询时,from表查询对象
     * @param        IQuery类型
     * @return IQuery
     */
     Q aliasWith(BaseQuery fromQuery);

    /**
     * 实例化查询构造器
     * o - 设置默认查询条件
     * o - 设置别名alias
     * o - 设置变量实例来自From查询实例
     *
     * @param alias     别名
     * @param fromQuery 关联查询时,from表查询对象
     * @return 查询构造器
     */
     Q aliasWith(String alias, BaseQuery fromQuery);
}