Class ManyToManyCollectionPart
java.lang.Object
org.hibernate.metamodel.mapping.internal.AbstractEntityCollectionPart
org.hibernate.metamodel.mapping.internal.ManyToManyCollectionPart
- All Implemented Interfaces:
Association,Bindable,CollectionPart,EntityAssociationMapping,EntityValuedModelPart,EntityCollectionPart,JdbcMappingContainer,MappingModelExpressible,ModelPart,ModelPartContainer,SelectableMappings,ValuedModelPart,ValueMapping,LazyTableGroup.ParentTableGroupUseChecker,TableGroupJoinProducer,TableGroupProducer,EntityValuedFetchable,Fetchable,FetchableContainer,FetchOptions,FetchStyleAccess,FetchTimingAccess,JavaTypedExpressible
public class ManyToManyCollectionPart
extends AbstractEntityCollectionPart
implements EntityAssociationMapping, LazyTableGroup.ParentTableGroupUseChecker
Entity-valued collection-part mapped through a join table. Models both
ManyToManymappingsOneToManywithJoinTablemappings
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.Bindable
Bindable.JdbcValuesBiConsumer<X,Y>, Bindable.JdbcValuesConsumer Nested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.CollectionPart
CollectionPart.NatureNested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.internal.EntityCollectionPart
EntityCollectionPart.CardinalityNested classes/interfaces inherited from interface org.hibernate.metamodel.mapping.ModelPart
ModelPart.JdbcValueBiConsumer<X,Y>, ModelPart.JdbcValueConsumer -
Field Summary
Fields inherited from class org.hibernate.metamodel.mapping.internal.AbstractEntityCollectionPart
targetKeyPropertyNames -
Constructor Summary
ConstructorsConstructorDescriptionManyToManyCollectionPart(CollectionPart.Nature nature, Collection collectionBootDescriptor, CollectionPersister collectionDescriptor, EntityMappingType associatedEntityDescriptor, NotFoundAction notFoundAction, MappingModelCreationProcess creationProcess) ManyToManyCollectionPart(CollectionPart.Nature nature, Collection collectionBootDescriptor, CollectionPersister collectionDescriptor, EntityMappingType associatedEntityDescriptor, MappingModelCreationProcess creationProcess) -
Method Summary
Modifier and TypeMethodDescription<X,Y> int breakDownJdbcValues(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session) Breaks down the domain value to its constituent JDBC values.booleancanUseParentTableGroup(TableGroupProducer producer, NavigablePath navigablePath, ValuedModelPart valuedModelPart) createRootTableGroupJoin(NavigablePath navigablePath, TableGroup lhs, @Nullable String explicitSourceAlias, @Nullable SqlAliasBase explicitSqlAliasBase, @Nullable SqlAstJoinType requestedJoinType, boolean fetched, @Nullable Consumer<Predicate> predicateConsumer, SqlAstCreationState creationState) Create the "join", but return a TableGroup.createTableGroupJoin(NavigablePath navigablePath, TableGroup lhs, @Nullable String explicitSourceAlias, @Nullable SqlAliasBase explicitSqlAliasBase, @Nullable SqlAstJoinType requestedJoinType, boolean fetched, boolean addsPredicate, SqlAstCreationState creationState) Create a TableGroupJoin.<X,Y> int decompose(Object domainValue, int offset, X x, Y y, ModelPart.JdbcValueBiConsumer<X, Y> valueConsumer, SharedSessionContractImplementor session) Similar toModelPart.breakDownJdbcValues(Object, int, Object, Object, JdbcValueBiConsumer, SharedSessionContractImplementor), but this method is supposed to be used for decomposing values for assignment expressions.findSubPart(String name, EntityMappingType targetType) booleanfinishInitialization(CollectionPersister collectionDescriptor, Collection bootCollectionDescriptor, String fkTargetModelPartName, MappingModelCreationProcess creationProcess) Perform any delayed initialization.voidforEachInsertable(SelectableConsumer consumer) intforEachSelectable(int offset, SelectableConsumer consumer) Visits each selectable mapping with the selectable index offset by the given value.voidforEachUpdatable(SelectableConsumer consumer) The table which contains the columns mapped by this valuegetDefaultSqlAstJoinType(TableGroup parentTableGroup) The descriptor, allowing access to column(s), etcgetJdbcMapping(int index) The model sub-part relative to the associated entity type that is the target of this association's foreign-keygetSelectable(int columnIndex) Get the selectable at the given positionIndicates which "side" of the foreign-key this association describesbooleanbooleanbooleanbooleanisSimpleJoinPredicate(Predicate predicate) Returns whether the given predicate is a simple join predicate for this attribute.protected AssociationKeyMethods inherited from class org.hibernate.metamodel.mapping.internal.AbstractEntityCollectionPart
buildEagerCollectionFetch, buildEntityFetchJoined, containsTableReference, createDomainResult, createTableGroupInternal, disassemble, findContainingEntityMapping, generateFetch, getAssociatedEntityMappingType, getCollectionAttribute, getCollectionDescriptor, getFetchableKey, getFetchableName, getMappedFetchOptions, getMappedType, getNature, getNavigableRole, getNotFoundAction, getNumberOfFetchables, getSqlAliasStem, getStyle, getTiming, incrementFetchDepth, isOptional, isUnwrapProxy, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.hibernate.metamodel.mapping.Bindable
forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachJdbcValue, forEachJdbcValueMethods inherited from interface org.hibernate.metamodel.mapping.CollectionPart
getPartNameMethods inherited from interface org.hibernate.metamodel.mapping.EntityAssociationMapping
getAssociatedEntityMappingType, getFetchableName, incrementFetchDepthMethods inherited from interface org.hibernate.metamodel.mapping.internal.EntityCollectionPart
addToCacheKey, getEntityMappingType, getExpressibleJavaType, getJavaType, getJdbcTypeCount, getPartMappingTypeMethods inherited from interface org.hibernate.metamodel.mapping.EntityValuedModelPart
applySqlSelections, applySqlSelections, findSubPart, forEachDisassembledJdbcValue, forEachJdbcType, forEachJdbcValue, forEachSubPart, visitSubPartsMethods inherited from interface org.hibernate.sql.results.graph.Fetchable
asAttributeMapping, getFetchableKey, getMappedFetchOptions, isSelectable, resolveCircularFetchMethods inherited from interface org.hibernate.sql.results.graph.FetchableContainer
getFetchable, getKeyFetchable, getNumberOfFetchableKeys, getNumberOfKeyFetchables, getSelectableIndex, visitFetchables, visitFetchables, visitFetchables, visitKeyFetchables, visitKeyFetchables, visitKeyFetchablesMethods inherited from interface org.hibernate.metamodel.mapping.ModelPart
areEqual, asBasicValuedModelPart, asEntityMappingType, breakDownJdbcValues, decompose, findContainingEntityMapping, getNavigableRole, isEntityIdentifierMapping, isVirtualMethods inherited from interface org.hibernate.metamodel.mapping.ModelPartContainer
findByPath, findByPath, forEachSubPartMethods inherited from interface org.hibernate.sql.ast.tree.from.TableGroupJoinProducer
determineSqlJoinTypeMethods inherited from interface org.hibernate.sql.ast.tree.from.TableGroupProducer
containsTableReference, getSqlAliasStemMethods inherited from interface org.hibernate.metamodel.mapping.ValuedModelPart
forEachNonFormula, forEachSelectable, getSingleJdbcMappingMethods inherited from interface org.hibernate.metamodel.mapping.ValueMapping
treatAs
-
Constructor Details
-
ManyToManyCollectionPart
public ManyToManyCollectionPart(CollectionPart.Nature nature, Collection collectionBootDescriptor, CollectionPersister collectionDescriptor, EntityMappingType associatedEntityDescriptor, MappingModelCreationProcess creationProcess) -
ManyToManyCollectionPart
public ManyToManyCollectionPart(CollectionPart.Nature nature, Collection collectionBootDescriptor, CollectionPersister collectionDescriptor, EntityMappingType associatedEntityDescriptor, NotFoundAction notFoundAction, MappingModelCreationProcess creationProcess)
-
-
Method Details
-
getCardinality
- Specified by:
getCardinalityin interfaceEntityCollectionPart
-
getInclusionCheckPart
- Specified by:
getInclusionCheckPartin interfaceCollectionPart
-
resolveFetchAssociationKey
- Specified by:
resolveFetchAssociationKeyin classAbstractEntityCollectionPart
-
findSubPart
- Specified by:
findSubPartin interfaceEntityValuedModelPart- Specified by:
findSubPartin interfaceModelPartContainer
-
getTargetKeyPropertyNames
- Specified by:
getTargetKeyPropertyNamesin interfaceEntityAssociationMapping
-
getSelectable
Description copied from interface:SelectableMappingsGet the selectable at the given position- Specified by:
getSelectablein interfaceSelectableMappings
-
getContainingTableExpression
Description copied from interface:ValuedModelPartThe table which contains the columns mapped by this value- Specified by:
getContainingTableExpressionin interfaceValuedModelPart
-
forEachSelectable
Description copied from interface:ModelPartVisits each selectable mapping with the selectable index offset by the given value. Returns the amount of jdbc types that have been visited.- Specified by:
forEachSelectablein interfaceModelPart- Specified by:
forEachSelectablein interfaceSelectableMappings- Specified by:
forEachSelectablein interfaceValuedModelPart- See Also:
-
forEachInsertable
- Specified by:
forEachInsertablein interfaceValuedModelPart
-
forEachUpdatable
- Specified by:
forEachUpdatablein interfaceValuedModelPart
-
getForeignKeyDescriptor
Description copied from interface:AssociationThe descriptor, allowing access to column(s), etc- Specified by:
getForeignKeyDescriptorin interfaceAssociation
-
getSideNature
Description copied from interface:AssociationIndicates which "side" of the foreign-key this association describes- Specified by:
getSideNaturein interfaceAssociation
-
getDefaultSqlAstJoinType
- Specified by:
getDefaultSqlAstJoinTypein interfaceTableGroupJoinProducer
-
isSimpleJoinPredicate
Description copied from interface:TableGroupJoinProducerReturns whether the given predicate is a simple join predicate for this attribute. This is useful to understand if a predicate has additional conjunctions other than the FK related predicate.- Specified by:
isSimpleJoinPredicatein interfaceTableGroupJoinProducer
-
isReferenceToPrimaryKey
public boolean isReferenceToPrimaryKey()- Specified by:
isReferenceToPrimaryKeyin interfaceEntityAssociationMapping
-
isFkOptimizationAllowed
public boolean isFkOptimizationAllowed()- Specified by:
isFkOptimizationAllowedin interfaceEntityAssociationMapping
-
getKeyTargetMatchPart
Description copied from interface:EntityAssociationMappingThe model sub-part relative to the associated entity type that is the target of this association's foreign-key- Specified by:
getKeyTargetMatchPartin interfaceEntityAssociationMapping
-
hasPartitionedSelectionMapping
public boolean hasPartitionedSelectionMapping()- Specified by:
hasPartitionedSelectionMappingin interfaceModelPart
-
finishInitialization
public boolean finishInitialization(CollectionPersister collectionDescriptor, Collection bootCollectionDescriptor, String fkTargetModelPartName, MappingModelCreationProcess creationProcess) Description copied from interface:EntityCollectionPartPerform any delayed initialization.The initialization is considered successful if the result is
true. It is considered unsuccessful if the result isfalseor an exception is thrown. Unsuccessful initializations are generally retried "later", to allow waiting for model-parts being available e.g.If the exception is something that will just never succeed, consider throwing an exception with the
NonTransientExceptionmarker to allow the creation process to stop immediately- Specified by:
finishInitializationin interfaceEntityCollectionPart
-
getJdbcMapping
- Specified by:
getJdbcMappingin interfaceJdbcMappingContainer
-