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

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

There is a newer version: 1.9.9
Show newest version
package cn.org.atool.fluent.mybatis.base.crud;

import cn.org.atool.fluent.mybatis.base.free.FreeQuery;
import cn.org.atool.fluent.mybatis.segment.JoinOn;

/**
 * 关联查询构造方式一: 使用直接传入设置好别名和参数的Query
 *
 * @param  查询表一
 * @author wudarui
 */
@SuppressWarnings({"unchecked", "unused"})
public interface JoinToBuilder> extends JoinBuilder {
    /**
     * from left.table join right.table on condition
     *
     * @param query 关联查询右表及右表条件设置
     * @param   join right表类型
     * @return ignore
     */
    > JoinOn> join(QR query);

    /**
     * from table1 join (select query) alias ...
     *
     * @param query 子查询
     * @param alias 子查询别名
     * @param   右查询类型
     * @return ignore
     */
    default > JoinOn> join(QR query, String alias) {
        return this.join((QR) new FreeQuery(query, alias));
    }

    /**
     * from left.table left join right.table on condition
     *
     * @param query 关联查询右表及右表条件设置
     * @param   join right 表类型
     * @return ignore
     */
    > JoinOn> leftJoin(QR query);

    /**
     * from table1 left join (select query) alias ...
     *
     * @param query 子查询
     * @param alias 子查询别名
     * @param   右查询类型
     * @return ignore
     */
    default > JoinOn> leftJoin(QR query, String alias) {
        return this.leftJoin((QR) new FreeQuery(query, alias));
    }

    /**
     * from left.table right join right.table on condition
     *
     * @param query 关联查询右表及右表条件设置
     * @param   join right 表类型
     * @return ignore
     */
    > JoinOn> rightJoin(QR query);

    /**
     * from table1 right join (select query) alias ...
     *
     * @param query 子查询
     * @param alias 子查询别名
     * @param   右查询类型
     * @return ignore
     */
    default > JoinOn> rightJoin(QR query, String alias) {
        return this.rightJoin((QR) new FreeQuery(query, alias));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy