Interface SqmMultiTableInsertStrategy
public interface SqmMultiTableInsertStrategy
Pluggable strategy for defining how insertion (`INSERT`) queries should be handled when the target
entity is mapped to multiple tables via secondary tables or certain inheritance strategies or uses an
identifier generator that uses an optimizer.
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.createInsertStrategy(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
(SqmInsertStatement<?> sqmInsertStatement, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Builds a cacheable handler for the passed SqmInsertStatement.default int
executeInsert
(SqmInsertStatement<?> sqmInsertStatement, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.default void
prepare
(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess mappingModelCreationProcess) Prepare the strategy for use.default void
prepare
(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess mappingModelCreationProcess, JdbcConnectionAccess connectionAccess) Prepare the strategy for use.default void
release
(SessionFactoryImplementor sessionFactory, JdbcConnectionAccess connectionAccess) Release the strategy.
-
Method Details
-
prepare
default void prepare(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess mappingModelCreationProcess, JdbcConnectionAccess connectionAccess) Prepare the strategy for use. Called one time as the SessionFactory is being built. -
prepare
default void prepare(org.hibernate.metamodel.mapping.internal.MappingModelCreationProcess mappingModelCreationProcess) 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(SqmInsertStatement<?> sqmInsertStatement, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Builds a cacheable handler for the passed SqmInsertStatement.- Returns:
- The number of rows affected
-
executeInsert
@Deprecated(forRemoval=true, since="7.1") default int executeInsert(SqmInsertStatement<?> sqmInsertStatement, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, DomainQueryExecutionContext context) Deprecated, for removal: This API element is subject to removal in a future version.Execute the multi-table insert indicated by the passed SqmInsertStatement- Returns:
- The number of rows affected
-
buildHandler(SqmInsertStatement, DomainParameterXref, DomainQueryExecutionContext)
instead