Class BasicCollectionPersister
java.lang.Object
org.hibernate.persister.collection.AbstractCollectionPersister
org.hibernate.persister.collection.BasicCollectionPersister
- All Implemented Interfaces:
CollectionMutationTarget, org.hibernate.engine.profile.internal.FetchProfileAffectee, FilterRestrictable, org.hibernate.metamodel.mapping.internal.InFlightCollectionMapping, org.hibernate.metamodel.mapping.internal.PluralAttributeMappingImpl.Aware, Restrictable, WhereRestrictable, CollectionPersister, Joinable, GraphMutationTarget<CollectionTableDescriptor>, LegacyMutationTarget<CollectionTableMapping>, MutationTarget<CollectionTableMapping, CollectionTableDescriptor>, MutationTarget
- See Also:
-
Field Summary
Fields inherited from class AbstractCollectionPersister
batchSize, elementColumnAliases, elementColumnIsGettable, elementColumnIsSettable, elementColumnNames, elementColumnReaders, elementColumnReaderTemplates, elementColumnWriters, elementFormulas, elementFormulaTemplates, elementIsPureFormula, elementType, hasWhere, identifierColumnName, indexColumnAliases, indexColumnIsGettable, indexColumnIsSettable, indexColumnNames, indexContainsFormula, indexFormulas, indexFormulaTemplates, isInverse, keyColumnAliases, keyColumnNames, keyFormulas, keyFormulaTemplates, qualifiedTableName, sqlExceptionHelper, sqlWhereString -
Constructor Summary
ConstructorsConstructorDescriptionBasicCollectionPersister(Collection collectionBinding, CollectionDataAccess cacheAccessStrategy, RuntimeModelCreationContext creationContext) -
Method Summary
Modifier and TypeMethodDescriptionprotected CollectionDecomposerprotected RowMutationOperationsvoiddecompose(org.hibernate.action.queue.internal.PreparedCollectionMutation mutation, int ordinalBase, SharedSessionContractImplementor session, DecompositionContext decompositionContext, Consumer<FlushOperation> operationConsumer) Decomposes a prepared collection mutation into graph-native operations.voiddeleteRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) Delete the persistent state of any elements that were removed from the collectionprotected voiddoProcessQueuedOps(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) generateDeleteAllAst(MutatingTableReference tableReference) protected RestrictedTableMutation<JdbcMutationOperation> generateSoftDeleteRowsAst(MutatingTableReference tableReference) protected RestrictedTableMutation<JdbcMutationOperation> generateTemporalDeleteAllAst(MutatingTableReference tableReference) protected RestrictedTableMutation<JdbcMutationOperation> generateTemporalDeleteRowsAst(MutatingTableReference tableReference) getFilterAliasGenerator(String rootAlias) getFilterAliasGenerator(TableGroup tableGroup) voidinsertRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) Insert the persistent state of any new collection elementsbooleanIs this a many-to-many association? Note that this is mainly a convenience feature as the single persister does not contain all the information needed to handle a many-to-many itself, as internally it is looked at as two many-to-ones.booleanIs this a one-to-many association?booleanvoidvoidrecreate(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) (Re)create the collection's persistent statevoidupdateRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) Update the persistent state of any elements that were modifiedMethods inherited from class AbstractCollectionPersister
applyBaseManyToManyRestrictions, applyBaseRestrictions, applyFilterRestrictions, applyKeyRestrictions, applyWhereFragments, applyWhereRestrictions, buildDeleteAllOperation, createNamedQueryCollectionLoader, createSingleKeyCollectionLoader, createSubSelectLoader, determineLoaderToUse, determineTableName, elementExists, forEachMutableTable, forEachMutableTableDescriptor, forEachMutableTableDescriptorReverse, forEachMutableTableReverse, generateDetectRowByElementString, generateDetectRowByIndexString, generateSelectSizeString, getAttributeMapping, getBatchSize, getCacheAccessStrategy, getCacheEntryStructure, getCollectionLoader, getCollectionPropertyColumnAliases, getCollectionSemantics, getCollectionSpaces, getCollectionTableDescriptor, getCollectionTableMapping, getCollectionType, getDialect, getElementByIndex, getElementClass, getElementColumnAliases, getElementColumnIsSettable, getElementColumnNames, getElementFormulas, getElementPersister, getElementPersisterInternal, getElementType, getFactory, getGenerator, getIdentifierColumnAlias, getIdentifierColumnName, getIdentifierTableName, getIdentifierType, getIndexColumnAliases, getIndexColumnIsSettable, getIndexColumnNames, getIndexFormulas, getIndexIncrementer, getIndexType, getKeyColumnAliases, getKeyColumnNames, getKeyFormulas, getKeyType, getMappedByProperty, getNavigableRole, getOwnerEntityName, getOwnerEntityPersister, getRolePath, getSize, getSortingComparator, getSQLExceptionHelper, getSqlWhereString, getTableName, getTargetPart, hasCache, hasIndex, hasManyToManyOrdering, hasOrdering, hasOrphanDelete, hasPhysicalIndexColumn, hasWhereRestrictions, incrementIndexByBase, indexExists, initCollectionPropertyMap, initialize, injectAttributeMapping, isAffectedByEnabledFetchProfiles, isAffectedByEnabledFilters, isAffectedByEnabledFilters, isAffectedByEnabledFilters, isAffectedByEnabledFilters, isAffectedByEntityGraph, isArray, isCascadeDeleteEnabled, isExtraLazy, isInverse, isLazy, isMutable, isPrimitiveArray, isRowDeleteEnabled, isRowInsertEnabled, isSubselectLoadable, isVersioned, logStaticSQL, needsRemove, prepareMappingModel, processQueuedOps, registerAffectingFetchProfile, remove, selectFragment, toString, useShallowQueryCacheLayoutMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface CollectionMutationTarget
getIdentifierTableDescriptor, getIdentifierTableMappingMethods inherited from interface CollectionPersister
getRole, isBatchLoadable
-
Constructor Details
-
BasicCollectionPersister
public BasicCollectionPersister(@Nonnull Collection collectionBinding, @Nullable CollectionDataAccess cacheAccessStrategy, @Nonnull RuntimeModelCreationContext creationContext) throws MappingException, CacheException - Throws:
MappingExceptionCacheException
-
-
Method Details
-
postInstantiate
- Specified by:
postInstantiatein interfaceCollectionPersister- Overrides:
postInstantiatein classAbstractCollectionPersister- Throws:
MappingException
-
buildCollectionDecomposer
-
getRowMutationOperations
- Specified by:
getRowMutationOperationsin interfaceCollectionPersister- Specified by:
getRowMutationOperationsin classAbstractCollectionPersister
-
getCreateEntryCoordinator
-
getInsertRowsCoordinator
-
getUpdateEntryCoordinator
-
getUpdateRowsCoordinator
-
getRemoveEntryCoordinator
-
getDeleteRowsCoordinator
-
getRemoveCoordinator
- Specified by:
getRemoveCoordinatorin classAbstractCollectionPersister
-
isPerformingUpdates
public boolean isPerformingUpdates() -
generateDeleteAllAst
@Nonnull public RestrictedTableMutation<JdbcMutationOperation> generateDeleteAllAst(@Nonnull MutatingTableReference tableReference) - Overrides:
generateDeleteAllAstin classAbstractCollectionPersister
-
generateTemporalDeleteAllAst
@Nonnull protected RestrictedTableMutation<JdbcMutationOperation> generateTemporalDeleteAllAst(@Nonnull MutatingTableReference tableReference) -
buildRowMutationOperations
-
generateSoftDeleteRowsAst
@Nonnull protected RestrictedTableMutation<JdbcMutationOperation> generateSoftDeleteRowsAst(@Nonnull MutatingTableReference tableReference) -
generateTemporalDeleteRowsAst
@Nonnull protected RestrictedTableMutation<JdbcMutationOperation> generateTemporalDeleteRowsAst(@Nonnull MutatingTableReference tableReference) -
isOneToMany
public boolean isOneToMany()Description copied from interface:CollectionPersisterIs this a one-to-many association? -
isManyToMany
public boolean isManyToMany()Description copied from interface:CollectionPersisterIs this a many-to-many association? Note that this is mainly a convenience feature as the single persister does not contain all the information needed to handle a many-to-many itself, as internally it is looked at as two many-to-ones.- Specified by:
isManyToManyin interfaceCollectionPersister- Specified by:
isManyToManyin classAbstractCollectionPersister
-
getFilterAliasGenerator
- Specified by:
getFilterAliasGeneratorin classAbstractCollectionPersister
-
getFilterAliasGenerator
- Specified by:
getFilterAliasGeneratorin classAbstractCollectionPersister
-