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

db.sql.api.cmd.executor.method.IJoinMethod Maven / Gradle / Ivy

package db.sql.api.cmd.executor.method;

import db.sql.api.cmd.JoinMode;

import java.util.function.Consumer;

public interface IJoinMethod {

    default SELF join(TABLE mainTable, TABLE secondTable, Consumer consumer) {
        return this.join(JoinMode.INNER, mainTable, secondTable, consumer);
    }

    SELF join(JoinMode mode, TABLE mainTable, TABLE secondTable, Consumer consumer);

    default SELF join(JoinMode mode, Class mainTable, Class secondTable) {
        return join(mode, mainTable, secondTable, null);
    }

    default SELF join(Class mainTable, Class secondTable) {
        return join(JoinMode.INNER, mainTable, secondTable);
    }

    default SELF join(Class mainTable, Class secondTable, Consumer consumer) {
        return join(JoinMode.INNER, mainTable, secondTable, consumer);
    }

    default SELF join(JoinMode mode, Class mainTable, Class secondTable, Consumer consumer) {
        return join(mode, mainTable, 1, secondTable, 1, consumer);
    }

    default SELF join(Class mainTable, int mainTableStorey, Class secondTable, int secondTableStorey) {
        return join(JoinMode.INNER, mainTable, mainTableStorey, secondTable, secondTableStorey);
    }

    default SELF join(JoinMode mode, Class mainTable, int mainTableStorey, Class secondTable, int secondTableStorey) {
        return join(mode, mainTable, mainTableStorey, secondTable, secondTableStorey, null);
    }

    default SELF join(Class mainTable, int mainTableStorey, Class secondTable, int secondTableStorey, Consumer consumer) {
        return join(JoinMode.INNER, mainTable, mainTableStorey, secondTable, secondTableStorey, consumer);
    }

    SELF join(JoinMode mode, Class mainTable, int mainTableStorey, Class secondTable, int secondTableStorey, Consumer consumer);


    default SELF join(Class mainTable, TABLE secondTable, Consumer consumer) {
        return join(JoinMode.INNER, mainTable, secondTable, consumer);
    }

    default SELF join(JoinMode mode, Class mainTable, TABLE secondTable, Consumer consumer) {
        return join(mode, mainTable, 1, secondTable, consumer);
    }

    default SELF join(Class mainTable, int mainTableStorey, TABLE secondTable, Consumer consumer) {
        return join(JoinMode.INNER, mainTable, mainTableStorey, secondTable, consumer);
    }

    SELF join(JoinMode mode, Class mainTable, int mainTableStorey, TABLE secondTable, Consumer consumer);

    /**
     * 实体类拦截
     *
     * @param mainTable
     * @param mainTableStorey
     * @param secondTable
     * @param consumer
     * @return
     */
    default Consumer joinEntityIntercept(Class mainTable, int mainTableStorey, Class secondTable, int secondTableStorey, Consumer consumer) {
        return consumer;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy