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

com.blazebit.persistence.FromBuilder Maven / Gradle / Ivy

/*
 * Copyright 2014 - 2020 Blazebit.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.blazebit.persistence;

import javax.persistence.metamodel.EntityType;
import java.util.Collection;
import java.util.Set;

/**
 * An interface for builders that support the from clause.
 *
 * @param  The concrete builder type
 * @author Christian Beikov
 * @since 1.1.0
 */
public interface FromBuilder> extends FromBaseBuilder, FromProvider {

    /**
     * Returns the query roots.
     *
     * @return The roots of this query
     * @since 1.2.0
     */
    public Set getRoots();

    /**
     * Returns the from element for the given alias or null.
     *
     * @param alias The alias of the from element
     * @return The from element of this query or null if not found
     * @since 1.2.0
     */
    public From getFrom(String alias);

    /**
     * Returns the from element for the given path, creating it if necessary.
     *
     * @param path The path to the from element
     * @return The from element of this query
     * @since 1.2.0
     */
    public From getFromByPath(String path);

    /**
     * Returns the path object for the given path string, creating it if necessary.
     *
     * @param path The path string
     * @return The path object for this query
     * @since 1.2.1
     */
    public Path getPath(String path);

    /* Declarations to retain binary compatibility */

    @Override
    public X from(Class entityClass);

    @Override
    public X from(Class entityClass, String alias);

    @Override
    public X from(EntityType entityType);

    @Override
    public X from(EntityType entityType, String alias);

    @Override
    public X fromOld(Class entityClass);

    @Override
    public X fromOld(Class entityClass, String alias);

    @Override
    public X fromNew(Class entityClass);

    @Override
    public X fromNew(Class entityClass, String alias);

    @Override
    public X fromValues(Class valueClass, String alias, int valueCount);

    @Override
    public X fromValues(Class entityBaseClass, String attributeName, String alias, int valueCount);

    @Override
    public X fromIdentifiableValues(Class valueClass, String alias, int valueCount);

    @Override
    public X fromIdentifiableValues(Class valueClass, String identifierAttribute, String alias, int valueCount);

    @Override
    public  X fromValues(Class valueClass, String alias, Collection values);

    @Override
    public X fromValues(Class entityBaseClass, String attributeName, String alias, Collection values);

    @Override
    public  X fromIdentifiableValues(Class valueClass, String alias, Collection values);

    @Override
    public  X fromIdentifiableValues(Class valueClass, String identifierAttribute, String alias, Collection values);

    /*
     * Join methods
     */
    /**
     * Adds a join to the query, possibly specializing implicit joins, and giving the joined element an alias.
     * The resulting join is different from a default join because it can only be referred to via it's alias.
     *
     * @param path The path to join
     * @param alias The alias for the joined element
     * @param type The join type
     * @return The query builder for chaining calls
     */
    public X join(String path, String alias, JoinType type);

    /**
     * Adds a join to the query, possibly specializing implicit joins, and giving the joined element an alias.
     * The resulting join will be the default join meaning that expressions which use the absolute path will refer to this join.
     *
     * @param path The path to join
     * @param alias The alias for the joined element
     * @param type The join type
     * @return The query builder for chaining calls
     */
    public X joinDefault(String path, String alias, JoinType type);

    /**
     * Adds a join with an on-clause to the query, possibly specializing implicit joins, and giving the joined element an alias.
     * 
     * 

* The resulting join is different from a default join because it can only be referred to via it's alias. The absolute path can only * be used if the joined path is a map and the on-clause contains a EQ predicate with the KEY on the left hand side. *

* * @param path The path to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause */ public JoinOnBuilder joinOn(String path, String alias, JoinType type); /** * Adds a join with an on-clause to the query, possibly specializing implicit joins, and giving the joined element an alias. * The resulting join will be the default join meaning that expressions which use the absolute path will refer to this join. * * @param path The path to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause */ public JoinOnBuilder joinDefaultOn(String path, String alias, JoinType type); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder joinOn(Class entityClass, String alias, JoinType type); /** * Adds an entity join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder joinOn(String base, Class entityClass, String alias, JoinType type); /** * Like {@link FromBuilder#joinOn(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder joinOn(EntityType entityType, String alias, JoinType type); /** * Adds an entity join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder joinOn(String base, EntityType entityType, String alias, JoinType type); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnSubquery(Class entityClass, String alias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnSubquery(String base, Class entityClass, String alias, JoinType type); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnSubquery(EntityType entityType, String alias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnSubquery(String base, EntityType entityType, String alias, JoinType type); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(Class entityClass, String alias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(String base, Class entityClass, String alias, JoinType type); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(EntityType entityType, String alias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(String base, EntityType entityType, String alias, JoinType type); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Adds a subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnSubquery(Class entityClass, String alias, JoinType type); /** * Adds a lateral subquery join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnSubquery(String base, Class entityClass, String alias, JoinType type); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinLateralOnSubquery(EntityType entityType, String alias, JoinType type); /** * Adds a lateral subquery join with an on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinLateralOnSubquery(String base, EntityType entityType, String alias, JoinType type); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnEntitySubquery(Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Adds a lateral subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinLateralOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Adds a lateral subquery join with an on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> joinLateralOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Correlates the given association path in a subquery in the FROM clause and returns a CTE builder for that subquery. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the FROM clause item * @param subqueryAlias The alias for the correlation FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnSubquery(String correlationPath, String alias, String subqueryAlias, JoinType type); /** * Like calling {@link FromBuilder#joinLateralOnSubquery(String, String, String, JoinType)}, but also binds all attributes. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the FROM clause item * @param subqueryAlias The alias for the correlation FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> joinLateralOnEntitySubquery(String correlationPath, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralSubquery(Class entityClass, String alias, JoinType type); /** * Adds a lateral subquery join with an always true on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralSubquery(String base, Class entityClass, String alias, JoinType type); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder joinLateralSubquery(EntityType entityType, String alias, JoinType type); /** * Adds a lateral subquery join with an always true on-clause to the query and giving the joined element an alias. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder joinLateralSubquery(String base, EntityType entityType, String alias, JoinType type); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralEntitySubquery(Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Adds a lateral subquery join with an always true on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * the query root assumed as base. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder joinLateralEntitySubquery(EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Adds a lateral subquery join with an always true on-clause to the query and giving the joined element an alias. * The subquery will have all attributes bound and thus not allow any further select items. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder joinLateralEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias, JoinType type); /** * Correlates the given association path in a subquery in the FROM clause and returns a CTE builder for that subquery. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the FROM clause item * @param subqueryAlias The alias for the correlation FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralSubquery(String correlationPath, String alias, String subqueryAlias, JoinType type); /** * Like calling {@link FromBuilder#joinLateralSubquery(String, String, String, JoinType)}, but also binds all attributes. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the FROM clause item * @param subqueryAlias The alias for the correlation FROM clause item in the subquery * @param type The join type * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder joinLateralEntitySubquery(String correlationPath, String alias, String subqueryAlias, JoinType type); /** * Like {@link FromBuilder#join(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X innerJoin(String path, String alias); /** * Like {@link FromBuilder#joinDefault(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X innerJoinDefault(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder innerJoinOn(String path, String alias); /** * Like {@link FromBuilder#joinDefaultOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder innerJoinDefaultOn(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder innerJoinOn(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder innerJoinOn(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder innerJoinOn(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder innerJoinOn(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnSubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> innerJoinLateralOnEntitySubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder innerJoinLateralSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder innerJoinLateralSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder innerJoinLateralEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder innerJoinLateralEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralSubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#INNER}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder innerJoinLateralEntitySubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#join(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X leftJoin(String path, String alias); /** * Like {@link FromBuilder#joinDefault(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X leftJoinDefault(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder leftJoinOn(String path, String alias); /** * Like {@link FromBuilder#joinDefaultOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder leftJoinDefaultOn(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder leftJoinOn(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder leftJoinOn(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder leftJoinOn(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder leftJoinOn(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnSubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnSubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralOnEntitySubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> leftJoinLateralOnEntitySubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder leftJoinLateralSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder leftJoinLateralSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder leftJoinLateralEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder leftJoinLateralEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralSubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralSubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinLateralEntitySubquery(java.lang.String, java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#LEFT}. * * @param correlationPath The correlation path which should be queried * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder leftJoinLateralEntitySubquery(String correlationPath, String alias, String subqueryAlias); /** * Like {@link FromBuilder#join(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X rightJoin(String path, String alias); /** * Like {@link FromBuilder#joinDefault(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param path The path to join * @param alias The alias for the joined element * @return The query builder for chaining calls */ public X rightJoinDefault(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder rightJoinOn(String path, String alias); /** * Like {@link FromBuilder#joinDefaultOn(java.lang.String, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param path The path to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause */ public JoinOnBuilder rightJoinDefaultOn(String path, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder rightJoinOn(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.2.0 */ public JoinOnBuilder rightJoinOn(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOn(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder rightJoinOn(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOn(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The restriction builder for the on-clause * @since 1.3.0 */ public JoinOnBuilder rightJoinOn(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnSubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnSubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnSubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnSubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnSubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnSubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(String base, Class entityClass, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(String base, EntityType entityType, String alias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, java.lang.Class, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityClass The entity class to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.4.1 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(String base, Class entityClass, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(EntityType entityType, String alias, String subqueryAlias); /** * Like {@link FromBuilder#joinOnEntitySubquery(java.lang.String, javax.persistence.metamodel.EntityType, java.lang.String, com.blazebit.persistence.JoinType) } but with * {@link JoinType#RIGHT}. * * @param base The base node on which to join * @param entityType The entity type to join * @param alias The alias for the joined element * @param subqueryAlias The alias for the FROM clause item in the subquery * @return The CTE builder for the subquery in the FROM clause * @since 1.5.0 */ public FullSelectCTECriteriaBuilder> rightJoinOnEntitySubquery(String base, EntityType entityType, String alias, String subqueryAlias); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy