Interface SqmMultiTableMutationStrategy
- All Known Implementing Classes:
CteMutationStrategy,GlobalTemporaryTableMutationStrategy,InlineMutationStrategy,LocalTemporaryTableMutationStrategy,PersistentTableMutationStrategy
public interface SqmMultiTableMutationStrategy
Pluggable strategy for defining how mutation (
UPDATE or DELETE) queries should
be handled when the target entity is mapped to multiple tables via secondary tables or certain
inheritance strategies.
The main contracts here are executeUpdate(org.hibernate.query.sqm.tree.update.SqmUpdateStatement<?>, org.hibernate.query.sqm.internal.DomainParameterXref, org.hibernate.query.spi.DomainQueryExecutionContext) and executeDelete(org.hibernate.query.sqm.tree.delete.SqmDeleteStatement<?>, org.hibernate.query.sqm.internal.DomainParameterXref, org.hibernate.query.spi.DomainQueryExecutionContext).
The methods prepare(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess, org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess) and release(org.hibernate.engine.spi.SessionFactoryImplementor, org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess) allow the strategy to perform any one time
preparation and cleanup.
- API Note:
- See
SqmMultiTableMutationStrategyProvider.createMutationStrategy(org.hibernate.metamodel.mapping.EntityMappingType, org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess)for standard resolution of the strategy to use for each hierarchy.
-
Method Summary
Modifier and TypeMethodDescriptionbuildHandler(SqmDeleteOrUpdateStatement<?> sqmStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Builds a cacheable handler for the passed SqmDeleteOrUpdateStatement.default intexecuteDelete(SqmDeleteStatement<?> sqmDeleteStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.default intexecuteUpdate(SqmUpdateStatement<?> sqmUpdateStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.default voidprepare(MappingModelCreationProcess mappingModelCreationProcess) Prepare the strategy for use.default voidprepare(MappingModelCreationProcess mappingModelCreationProcess, JdbcConnectionAccess connectionAccess) Prepare the strategy for use.default voidrelease(SessionFactoryImplementor sessionFactory, JdbcConnectionAccess connectionAccess) Release the strategy.
-
Method Details
-
prepare
default void prepare(MappingModelCreationProcess mappingModelCreationProcess, JdbcConnectionAccess connectionAccess) Prepare the strategy for use. Called one time as the SessionFactory is being built. -
prepare
Prepare the strategy for use. Called one time as the SessionFactory is being built. -
release
default void release(SessionFactoryImplementor sessionFactory, JdbcConnectionAccess connectionAccess) Release the strategy. Called one time as the SessionFactory is being shut down. -
buildHandler
MultiTableHandlerBuildResult buildHandler(SqmDeleteOrUpdateStatement<?> sqmStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Builds a cacheable handler for the passed SqmDeleteOrUpdateStatement.- Returns:
- The number of rows affected
-
executeUpdate
@Deprecated(forRemoval=true, since="7.1") default int executeUpdate(SqmUpdateStatement<?> sqmUpdateStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.Execute the multi-table update indicated by the passed SqmUpdateStatement- Returns:
- The number of rows affected
-
executeDelete
@Deprecated(forRemoval=true, since="7.1") default int executeDelete(SqmDeleteStatement<?> sqmDeleteStatement, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.Execute the multi-table update indicated by the passed SqmUpdateStatement- Returns:
- The number of rows affected
-
buildHandler(SqmDeleteOrUpdateStatement, DomainParameterXref, DomainQueryExecutionContext)instead