Package org.hibernate.sql.ast.tree.from
Class AbstractTableGroup
java.lang.Object
org.hibernate.sql.ast.tree.from.AbstractColumnReferenceQualifier
org.hibernate.sql.ast.tree.from.AbstractTableGroup
- All Implemented Interfaces:
DomainResultProducer,SqmPathInterpretation,SqlSelectionProducer,Expression,ColumnReferenceQualifier,TableGroup,SqlAstNode
- Direct Known Subclasses:
CorrelatedTableGroup,CteTableGroup,EmbeddableFunctionTableGroup,FunctionTableGroup,QueryPartTableGroup,StandardTableGroup,StandardVirtualTableGroup,TableGroupImpl,UnionTableGroup,ValuesTableGroup
public abstract class AbstractTableGroup
extends AbstractColumnReferenceQualifier
implements TableGroup
-
Constructor Summary
ConstructorsConstructorDescriptionAbstractTableGroup(boolean canUseInnerJoins, NavigablePath navigablePath, ModelPartContainer modelPartContainer, String sourceAlias, SqlAliasBase sqlAliasBase, SessionFactoryImplementor sessionFactory) -
Method Summary
Modifier and TypeMethodDescriptionvoidA nested table group join is a join against a table group, that is ensured to be joined against the primary table reference and table reference joins in isolation, prior to doing other table group joins e.g.voidbooleanThe type for this expressionIf we want to use CTE for TableGroup rendering we will need to know the alias we can use for the groupprotected SessionFactoryImplementorbooleanvoidprependTableGroupJoin(NavigablePath navigablePath, TableGroupJoin join) Adds the given table group join before a join as found via the given navigable path.toString()voidvisitNestedTableGroupJoins(Consumer<TableGroupJoin> consumer) voidvisitTableGroupJoins(Consumer<TableGroupJoin> consumer) Methods inherited from class org.hibernate.sql.ast.tree.from.AbstractColumnReferenceQualifier
getPrimaryTableReference, getTableReference, getTableReferenceJoinsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.hibernate.sql.ast.tree.from.ColumnReferenceQualifier
getTableReference, getTableReference, getTableReference, getTableReference, resolveTableReference, resolveTableReference, resolveTableReferenceMethods inherited from interface org.hibernate.sql.ast.tree.expression.Expression
createDomainResultSqlSelection, createSqlSelection, getColumnReferenceMethods inherited from interface org.hibernate.query.sqm.sql.internal.SqmPathInterpretation
getAffectedTableName, getSqlExpressionMethods inherited from interface org.hibernate.sql.ast.tree.from.TableGroup
accept, applyAffectedTableNames, applySqlSelections, createDomainResult, findCompatibleJoin, findCompatibleJoinedGroup, findTableGroupJoin, findTableReference, getPrimaryTableReference, getTableReferenceJoins, hasRealJoins, isFetched, isInitialized, isLateral, isVirtual
-
Constructor Details
-
Method Details
-
getSqlAliasBase
-
getGroupAlias
Description copied from interface:TableGroupIf we want to use CTE for TableGroup rendering we will need to know the alias we can use for the group- Specified by:
getGroupAliasin interfaceTableGroup
-
getModelPart
- Specified by:
getModelPartin interfaceTableGroup
-
getExpressionType
Description copied from interface:ExpressionThe type for this expression- Specified by:
getExpressionTypein interfaceExpression- Specified by:
getExpressionTypein interfaceSqmPathInterpretation
-
getSourceAlias
- Specified by:
getSourceAliasin interfaceTableGroup
-
getSessionFactory
- Specified by:
getSessionFactoryin classAbstractColumnReferenceQualifier
-
getTableGroupJoins
- Specified by:
getTableGroupJoinsin interfaceTableGroup
-
getNestedTableGroupJoins
- Specified by:
getNestedTableGroupJoinsin interfaceTableGroup
-
isRealTableGroup
public boolean isRealTableGroup()- Specified by:
isRealTableGroupin interfaceTableGroup
-
canUseInnerJoins
public boolean canUseInnerJoins()- Specified by:
canUseInnerJoinsin interfaceTableGroup
-
addTableGroupJoin
- Specified by:
addTableGroupJoinin interfaceTableGroup
-
addNestedTableGroupJoin
Description copied from interface:TableGroupA nested table group join is a join against a table group, that is ensured to be joined against the primary table reference and table reference joins in isolation, prior to doing other table group joins e.g.select * from entity1 e left join ( collection_table c1 join association a on a.id = c1.target_id ) on c1.entity_id = e.id and c1.key = 1is modeled asTableGroup( primaryTableReference = TableReference(entity1, e), tableGroupJoins = [ TableGroupJoin( TableGroup( primaryTableReference = TableReference(collection_table, c1), nestedTableGroupJoins = [ TableGroupJoin( TableGroup( primaryTableReference = TableReference(association, a) ) ) ] ) ) ] )This is necessary to correctly retain the cardinality of an HQL join like e.g.from Entity1 e left join e.collectionAssociation c on key(c) = 1- Specified by:
addNestedTableGroupJoinin interfaceTableGroup
-
visitTableGroupJoins
- Specified by:
visitTableGroupJoinsin interfaceTableGroup
-
visitNestedTableGroupJoins
- Specified by:
visitNestedTableGroupJoinsin interfaceTableGroup
-
toString
-