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(MappingModelCreationProcess, JdbcConnectionAccess) and release(SessionFactoryImplementor, JdbcConnectionAccess) allow the strategy to perform any one time preparation and cleanup.

API Note:
See SqmMultiTableMutationStrategyProvider.createInsertStrategy(EntityMappingType, MappingModelCreationProcess) for standard resolution of the strategy to use for each hierarchy
  • 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