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

org.babyfish.jimmer.sql.ast.table.Props Maven / Gradle / Ivy

There is a newer version: 0.9.19
Show newest version
package org.babyfish.jimmer.sql.ast.table;

import org.babyfish.jimmer.meta.ImmutableProp;
import org.babyfish.jimmer.meta.ImmutableType;
import org.babyfish.jimmer.meta.PropId;
import org.babyfish.jimmer.meta.TypedProp;
import org.babyfish.jimmer.sql.JoinType;
import org.babyfish.jimmer.sql.ast.Predicate;
import org.babyfish.jimmer.sql.ast.PropExpression;

import java.util.function.Function;

/**
 * Used by mapped super class
 *
 * 1. It is super class of {@link Table}
 * 2. It must be decorated by {@link PropsFor}
 */
public interface Props {

    ImmutableType getImmutableType();

     PropExpression get(ImmutableProp prop);

     PropExpression get(String prop);

     PropExpression getId();

     PropExpression getAssociatedId(ImmutableProp prop);

     PropExpression getAssociatedId(String prop);

    > XT join(ImmutableProp prop);

    > XT join(String prop);

    > XT join(ImmutableProp prop, JoinType joinType);

    > XT join(String prop, JoinType joinType);

    > XT join(ImmutableProp prop, JoinType joinType, ImmutableType treatedAs);

    > XT join(String prop, JoinType joinType, ImmutableType treatedAs);

     PropExpression inverseGetAssociatedId(ImmutableProp prop);

    > XT inverseJoin(ImmutableProp prop);

    > XT inverseJoin(ImmutableProp prop, JoinType joinType);

    > XT inverseJoin(TypedProp.Association prop);

    > XT inverseJoin(TypedProp.Association prop, JoinType joinType);

    > XT inverseJoin(
            Class targetTableType,
            Function> backPropBlock
    );

    > XT inverseJoin(
            Class targetTableType,
            Function> backPropBlock,
            JoinType joinType
    );

    > Predicate exists(String prop, Function block);

    > Predicate exists(ImmutableProp prop, Function block);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy