Top Description Fields Constructors Methods
org.hibernate.persister.collection

public Class OneToManyPersister

extends AbstractCollectionPersister
Class Inheritance
Annotations
@Internal
Imports
java.util.Iterator, .List, java.util.function.Consumer, org.hibernate.HibernateException, .Internal, .MappingException, org.hibernate.cache.CacheException, org.hibernate.cache.spi.access.CollectionDataAccess, org.hibernate.collection.spi.PersistentCollection, org.hibernate.engine.jdbc.batch.internal.BasicBatchKey, org.hibernate.engine.jdbc.mutation.JdbcValueBindings, .MutationExecutor, .ParameterUsage, org.hibernate.engine.jdbc.mutation.internal.MutationQueryOptions, org.hibernate.engine.jdbc.mutation.spi.MutationExecutorService, org.hibernate.engine.spi.SharedSessionContractImplementor, org.hibernate.internal.FilterAliasGenerator, org.hibernate.internal.util.NullnessHelper, org.hibernate.internal.util.collections.ArrayHelper, org.hibernate.jdbc.Expectations, org.hibernate.mapping.Collection, org.hibernate.metamodel.mapping.CollectionPart, .EntityIdentifierMapping, .EntityMappingType, .ForeignKeyDescriptor, .PluralAttributeMapping, .SelectableMapping, org.hibernate.metamodel.mapping.internal.EntityCollectionPart, .OneToManyCollectionPart, org.hibernate.metamodel.spi.RuntimeModelCreationContext, org.hibernate.persister.collection.mutation.DeleteRowsCoordinator, .DeleteRowsCoordinatorNoOp, .DeleteRowsCoordinatorStandard, .DeleteRowsCoordinatorTablePerSubclass, .InsertRowsCoordinator, .InsertRowsCoordinatorNoOp, .InsertRowsCoordinatorStandard, .InsertRowsCoordinatorTablePerSubclass, .OperationProducer, .RemoveCoordinator, .RemoveCoordinatorNoOp, .RemoveCoordinatorStandard, .RemoveCoordinatorTablePerSubclass, .RowMutationOperations, .UpdateRowsCoordinator, .UpdateRowsCoordinatorNoOp, .UpdateRowsCoordinatorOneToMany, .UpdateRowsCoordinatorTablePerSubclass, org.hibernate.persister.entity.Joinable, .UnionSubclassEntityPersister, org.hibernate.persister.spi.PersisterCreationContext, org.hibernate.sql.ast.SqlAstTranslator, org.hibernate.sql.ast.spi.SqlAstCreationState, org.hibernate.sql.ast.tree.expression.ColumnReference, org.hibernate.sql.ast.tree.from.TableGroup, org.hibernate.sql.ast.tree.predicate.Predicate, org.hibernate.sql.model.MutationOperation, .MutationType, org.hibernate.sql.model.ast.ColumnValueBinding, .ColumnValueParameter, .ColumnValueParameterList, .ColumnWriteFragment, .MutatingTableReference, .RestrictedTableMutation, .TableUpdate, org.hibernate.sql.model.ast.builder.CollectionRowDeleteByUpdateSetNullBuilder, .TableUpdateBuilderStandard, org.hibernate.sql.model.internal.MutationOperationGroupFactory, .TableUpdateStandard, org.hibernate.sql.model.jdbc.JdbcMutationOperation

Deprecated

as a consequence of AbstractCollectionPersister being deprecated. See corresponding docs for further information.

A CollectionPersister for one-to-one associations.
Authors
Gavin King, Brett Meyer
See Also
BasicCollectionPersister

Field Summary

Modifier and TypeField and Description
private final boolean
private final DeleteRowsCoordinator
private final InsertRowsCoordinator
private final boolean
private final boolean
private final MutationExecutorService
private final RemoveCoordinator
private final RowMutationOperations
private final UpdateRowsCoordinator
Inherited from org.hibernate.persister.collection.AbstractCollectionPersister:
batchSizeelementColumnAliaseselementColumnIsGettableelementColumnIsSettableelementColumnNameselementColumnReaderselementColumnReaderTemplateselementColumnWriterselementFormulaselementFormulaTemplateselementIsPureFormulaelementTypehasWhereidentifierColumnNameindexColumnAliasesindexColumnIsGettableindexColumnIsSettableindexColumnNamesindexContainsFormulaindexFormulasindexFormulaTemplatesisInversekeyColumnAliaseskeyColumnNamesqualifiedTableNamesqlExceptionHelpersqlWhereString

Constructor Summary

AccessConstructor and Description
public
OneToManyPersister(Collection collectionBinding, CollectionDataAccess cacheAccessStrategy, PersisterCreationContext creationContext)

Deprecated since 6.0.
public
OneToManyPersister(Collection collectionBinding, CollectionDataAccess cacheAccessStrategy, RuntimeModelCreationContext creationContext)

Deprecated as a consequence of RuntimeModelCreationContext being deprecated.

Method Summary

Modifier and TypeMethod and Description
private void
applyDeleteRowRestrictions(PersistentCollection<?> collection, Object keyValue, Object rowValue, int rowPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)

private void
applyInsertRowValues(PersistentCollection<?> collection, Object keyValue, Object rowValue, int rowPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)

protected void
private void
applyWriteIndexRestrictions(PersistentCollection<?> collection, Object key, Object entry, int entryPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)

private void
applyWriteIndexValues(PersistentCollection<?> collection, Object key, Object entry, int entryPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)

private RemoveCoordinator
private DeleteRowsCoordinator
private InsertRowsCoordinator
private RowMutationOperations
private TableUpdate<JdbcMutationOperation>
private UpdateRowsCoordinator
public boolean
public boolean
public void
deleteRows(PersistentCollection<?> collection, Object key, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.deleteRows.

Delete the persistent state of any elements that were removed from the collection
protected void
public RestrictedTableMutation<JdbcMutationOperation>
public RestrictedTableMutation<JdbcMutationOperation>
private JdbcMutationOperation
private JdbcMutationOperation
private JdbcMutationOperation
protected DeleteRowsCoordinator
public FilterAliasGenerator
public FilterAliasGenerator
protected InsertRowsCoordinator
protected RemoveCoordinator
protected RowMutationOperations
public String
protected UpdateRowsCoordinator
public void
insertRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.insertRows.

Insert the persistent state of any new collection elements
public boolean
isCascadeDeleteEnabled()

Implements org.hibernate.persister.collection.CollectionPersister.isCascadeDeleteEnabled.

Is cascade delete handled by the database-level foreign key constraint definition?
public boolean
public boolean
protected boolean
protected boolean
public void
recreate(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.recreate.

(Re)create the collection's persistent state
public void
updateRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.updateRows.

Update the persistent state of any elements that were modified
private void
writeIndex(PersistentCollection<?> collection, Iterator<?> entries, Object key, boolean resetIndex, SharedSessionContractImplementor session)

Inherited from org.hibernate.persister.collection.AbstractCollectionPersister:
applyBaseManyToManyRestrictionsapplyBaseRestrictionsapplyFilterRestrictionsapplyKeyRestrictionsapplyWhereRestrictionsbuildDeleteAllOperationcreateNamedQueryCollectionLoadercreateSingleKeyCollectionLoadercreateSubSelectLoaderdecrementIndexByBasedetermineLoaderToUsedetermineTableNameelementExistsforEachMutableTableforEachMutableTableReversegenerateDetectRowByElementStringgenerateDetectRowByIndexStringgenerateSelectSizeStringgetAttributeMappinggetBatchSizegetCacheAccessStrategygetCacheEntryStructuregetCollectionLoadergetCollectionMetadatagetCollectionPropertyColumnAliasesgetCollectionSemanticsgetCollectionSpacesgetCollectionTableMappinggetCollectionTypegetDialectgetElementByIndexgetElementClassgetElementColumnAliasesgetElementColumnNamesgetElementColumnNamesgetElementPersistergetElementPersisterInternalgetElementTypegetFactorygetFetchModegetGeneratorgetIdentifierColumnAliasgetIdentifierColumnNamegetIdentifierGeneratorgetIdentifierTableNamegetIdentifierTypegetIndexColumnAliasesgetIndexColumnNamesgetIndexColumnNamesgetIndexFormulasgetIndexTypegetKeyColumnAliasesgetKeyColumnNamesgetKeyTypegetManyToManyFilterFragmentgetManyToManyOrderByStringgetMappedByPropertygetNamegetNavigableRolegetOwnerEntityNamegetOwnerEntityPersistergetSizegetSortingComparatorgetSQLExceptionHelpergetSQLOrderByStringgetTargetParthasCachehasIndexhasManyToManyOrderinghasOrderinghasOrphanDeletehasPhysicalIndexColumnhasWherehasWhereRestrictionsincrementIndexByBaseindexExistsinitCollectionPropertyMapinitializeinjectAttributeMappingisAffectedByEnabledFetchProfilesisAffectedByEnabledFiltersisAffectedByEnabledFiltersisAffectedByEntityGraphisArrayisBatchLoadableisCollectionisExtraLazyisInverseisLazyisMutableisPrimitiveArrayisSubselectLoadableisVersionedlogStaticSQLneedsRemovepostInstantiateprocessQueuedOpsregisterAffectingFetchProfileremoveselectFragmenttoColumnstoStringtoType

Field Detail

cascadeDeleteEnabledback to summary
private final boolean cascadeDeleteEnabled
deleteRowsCoordinatorback to summary
private final DeleteRowsCoordinator deleteRowsCoordinator
insertRowsCoordinatorback to summary
private final InsertRowsCoordinator insertRowsCoordinator
keyIsNullableback to summary
private final boolean keyIsNullable
keyIsUpdateableback to summary
private final boolean keyIsUpdateable
mutationExecutorServiceback to summary
private final MutationExecutorService mutationExecutorService
removeCoordinatorback to summary
private final RemoveCoordinator removeCoordinator
rowMutationOperationsback to summary
private final RowMutationOperations rowMutationOperations
updateRowsCoordinatorback to summary
private final UpdateRowsCoordinator updateRowsCoordinator

Constructor Detail

OneToManyPersisterback to summary
public OneToManyPersister(Collection collectionBinding, CollectionDataAccess cacheAccessStrategy, PersisterCreationContext creationContext) throws MappingException, CacheException

Deprecated

since 6.0.

Annotations
@Deprecated
since:6.0
OneToManyPersisterback to summary
public OneToManyPersister(Collection collectionBinding, CollectionDataAccess cacheAccessStrategy, RuntimeModelCreationContext creationContext) throws MappingException, CacheException

Deprecated

as a consequence of RuntimeModelCreationContext being deprecated. See corresponding docs for further information.

Method Detail

applyDeleteRowRestrictionsback to summary
private void applyDeleteRowRestrictions(PersistentCollection<?> collection, Object keyValue, Object rowValue, int rowPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)
applyInsertRowValuesback to summary
private void applyInsertRowValues(PersistentCollection<?> collection, Object keyValue, Object rowValue, int rowPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)
applyWhereFragmentsback to summary
protected void applyWhereFragments(Consumer<Predicate> predicateConsumer, String alias, TableGroup tableGroup, SqlAstCreationState astCreationState)

Overrides org.hibernate.persister.collection.AbstractCollectionPersister.applyWhereFragments.

applyWriteIndexRestrictionsback to summary
private void applyWriteIndexRestrictions(PersistentCollection<?> collection, Object key, Object entry, int entryPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)
applyWriteIndexValuesback to summary
private void applyWriteIndexValues(PersistentCollection<?> collection, Object key, Object entry, int entryPosition, SharedSessionContractImplementor session, JdbcValueBindings jdbcValueBindings)
buildDeleteAllCoordinatorback to summary
private RemoveCoordinator buildDeleteAllCoordinator()
buildDeleteCoordinatorback to summary
private DeleteRowsCoordinator buildDeleteCoordinator()
buildInsertCoordinatorback to summary
private InsertRowsCoordinator buildInsertCoordinator()
buildRowMutationOperationsback to summary
private RowMutationOperations buildRowMutationOperations()
buildTableUpdateback to summary
private TableUpdate<JdbcMutationOperation> buildTableUpdate(MutatingTableReference tableReference)
buildUpdateCoordinatorback to summary
private UpdateRowsCoordinator buildUpdateCoordinator()
consumesCollectionAliasback to summary
public boolean consumesCollectionAlias()

Implements org.hibernate.persister.entity.Joinable.consumesCollectionAlias.

Doc from org.hibernate.persister.entity.Joinable.consumesCollectionAlias.

Very, very, very ugly...

Returns:boolean

Does this persister "consume" collection column aliases in the result set?

consumesEntityAliasback to summary
public boolean consumesEntityAlias()

Implements org.hibernate.persister.entity.Joinable.consumesEntityAlias.

Doc from org.hibernate.persister.entity.Joinable.consumesEntityAlias.

Very, very, very ugly...

Returns:boolean

Does this persister "consume" entity column aliases in the result set?

deleteRowsback to summary
public void deleteRows(PersistentCollection<?> collection, Object key, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.deleteRows.

Doc from org.hibernate.persister.collection.CollectionPersister.deleteRows.

Delete the persistent state of any elements that were removed from the collection

Annotations
@Override
doProcessQueuedOpsback to summary
protected void doProcessQueuedOps(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) throws HibernateException

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.doProcessQueuedOps.

Annotations
@Override
generateDeleteAllAstback to summary
public RestrictedTableMutation<JdbcMutationOperation> generateDeleteAllAst(MutatingTableReference tableReference)

Overrides org.hibernate.persister.collection.AbstractCollectionPersister.generateDeleteAllAst.

Annotations
@Override
generateDeleteRowAstback to summary
public RestrictedTableMutation<JdbcMutationOperation> generateDeleteRowAst(MutatingTableReference tableReference)
generateDeleteRowOperationback to summary
private JdbcMutationOperation generateDeleteRowOperation(MutatingTableReference tableReference)
generateInsertRowOperationback to summary
private JdbcMutationOperation generateInsertRowOperation(MutatingTableReference tableReference)
generateWriteIndexOperationback to summary
private JdbcMutationOperation generateWriteIndexOperation(MutatingTableReference tableReference)
getDeleteRowsCoordinatorback to summary
protected DeleteRowsCoordinator getDeleteRowsCoordinator()
getFilterAliasGeneratorback to summary
public FilterAliasGenerator getFilterAliasGenerator(String rootAlias)

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.getFilterAliasGenerator.

Annotations
@Override
getFilterAliasGeneratorback to summary
public FilterAliasGenerator getFilterAliasGenerator(TableGroup rootTableGroup)

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.getFilterAliasGenerator.

Annotations
@Override
getInsertRowsCoordinatorback to summary
protected InsertRowsCoordinator getInsertRowsCoordinator()
getRemoveCoordinatorback to summary
protected RemoveCoordinator getRemoveCoordinator()

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.getRemoveCoordinator.

Annotations
@Override
getRowMutationOperationsback to summary
protected RowMutationOperations getRowMutationOperations()

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.getRowMutationOperations.

Annotations
@Override
getTableNameback to summary
public String getTableName()

Overrides org.hibernate.persister.collection.AbstractCollectionPersister.getTableName.

Implements org.hibernate.persister.entity.Joinable.getTableName.

Doc from org.hibernate.persister.entity.Joinable.getTableName.

The table to join to.

Annotations
@Override
getUpdateRowsCoordinatorback to summary
protected UpdateRowsCoordinator getUpdateRowsCoordinator()
insertRowsback to summary
public void insertRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) throws HibernateException

Implements org.hibernate.persister.collection.CollectionPersister.insertRows.

Doc from org.hibernate.persister.collection.CollectionPersister.insertRows.

Insert the persistent state of any new collection elements

Annotations
@Override
isCascadeDeleteEnabledback to summary
public boolean isCascadeDeleteEnabled()

Implements org.hibernate.persister.collection.CollectionPersister.isCascadeDeleteEnabled.

Doc from org.hibernate.persister.collection.CollectionPersister.isCascadeDeleteEnabled.

Is cascade delete handled by the database-level foreign key constraint definition?

isManyToManyback to summary
public boolean isManyToMany()

Implements abstract org.hibernate.persister.collection.AbstractCollectionPersister.isManyToMany.

Implements org.hibernate.persister.collection.CollectionPersister.isManyToMany.

Doc from org.hibernate.persister.collection.CollectionPersister.isManyToMany.

Is 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.

Annotations
@Override
isOneToManyback to summary
public boolean isOneToMany()

Implements org.hibernate.persister.collection.CollectionPersister.isOneToMany.

Doc from org.hibernate.persister.collection.CollectionPersister.isOneToMany.

Is this a one-to-many association?

isRowDeleteEnabledback to summary
protected boolean isRowDeleteEnabled()

Overrides org.hibernate.persister.collection.AbstractCollectionPersister.isRowDeleteEnabled.

Annotations
@Override
isRowInsertEnabledback to summary
protected boolean isRowInsertEnabled()

Overrides org.hibernate.persister.collection.AbstractCollectionPersister.isRowInsertEnabled.

Annotations
@Override
recreateback to summary
public void recreate(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session) throws HibernateException

Implements org.hibernate.persister.collection.CollectionPersister.recreate.

Doc from org.hibernate.persister.collection.CollectionPersister.recreate.

(Re)create the collection's persistent state

Annotations
@Override
updateRowsback to summary
public void updateRows(PersistentCollection<?> collection, Object id, SharedSessionContractImplementor session)

Implements org.hibernate.persister.collection.CollectionPersister.updateRows.

Doc from org.hibernate.persister.collection.CollectionPersister.updateRows.

Update the persistent state of any elements that were modified

Annotations
@Override
writeIndexback to summary
private void writeIndex(PersistentCollection<?> collection, Iterator<?> entries, Object key, boolean resetIndex, SharedSessionContractImplementor session)