Class ReactiveTableBasedInsertHandler

  • All Implemented Interfaces:
    org.hibernate.query.sqm.mutation.internal.Handler, org.hibernate.query.sqm.mutation.internal.InsertHandler, ReactiveHandler

    public class ReactiveTableBasedInsertHandler
    extends org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler
    implements ReactiveHandler
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  ReactiveTableBasedInsertHandler.ReactiveExecutionDelegate  
      • Nested classes/interfaces inherited from class org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler

        org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler.ExecutionDelegate
    • Constructor Summary

      Constructors 
      Constructor Description
      ReactiveTableBasedInsertHandler​(org.hibernate.query.sqm.tree.insert.SqmInsertStatement<?> sqmInsert, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, org.hibernate.dialect.temptable.TemporaryTable entityTable, org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction afterUseAction, java.util.function.Function<org.hibernate.engine.spi.SharedSessionContractImplementor,​java.lang.String> sessionUidAccess, org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler.ExecutionDelegate buildExecutionDelegate​(org.hibernate.query.sqm.tree.insert.SqmInsertStatement<?> sqmInsert, org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter sqmConverter, org.hibernate.dialect.temptable.TemporaryTable entityTable, org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction afterUseAction, java.util.function.Function<org.hibernate.engine.spi.SharedSessionContractImplementor,​java.lang.String> sessionUidAccess, org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref, org.hibernate.sql.ast.tree.from.TableGroup insertingTableGroup, java.util.Map<java.lang.String,​org.hibernate.sql.ast.tree.from.TableReference> tableReferenceByAlias, java.util.List<org.hibernate.sql.ast.tree.update.Assignment> assignments, org.hibernate.sql.ast.tree.insert.InsertSelectStatement insertStatement, java.util.Map<org.hibernate.query.sqm.tree.expression.SqmParameter<?>,​java.util.List<java.util.List<org.hibernate.sql.ast.tree.expression.JdbcParameter>>> parameterResolutions, org.hibernate.sql.ast.tree.expression.JdbcParameter sessionUidParameter, java.util.Map<org.hibernate.query.sqm.tree.expression.SqmParameter<?>,​org.hibernate.metamodel.mapping.MappingModelExpressible<?>> paramTypeResolutions, org.hibernate.query.spi.DomainQueryExecutionContext executionContext)  
      java.util.concurrent.CompletionStage<java.lang.Integer> reactiveExecute​(org.hibernate.query.spi.DomainQueryExecutionContext executionContext)
      Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.
      protected ReactiveTableBasedInsertHandler.ReactiveExecutionDelegate resolveDelegate​(org.hibernate.query.spi.DomainQueryExecutionContext executionContext)  
      • Methods inherited from class org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler

        execute, getSqmInsertStatement
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ReactiveTableBasedInsertHandler

        public ReactiveTableBasedInsertHandler​(org.hibernate.query.sqm.tree.insert.SqmInsertStatement<?> sqmInsert,
                                               org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref,
                                               org.hibernate.dialect.temptable.TemporaryTable entityTable,
                                               org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction afterUseAction,
                                               java.util.function.Function<org.hibernate.engine.spi.SharedSessionContractImplementor,​java.lang.String> sessionUidAccess,
                                               org.hibernate.engine.spi.SessionFactoryImplementor sessionFactory)
    • Method Detail

      • reactiveExecute

        public java.util.concurrent.CompletionStage<java.lang.Integer> reactiveExecute​(org.hibernate.query.spi.DomainQueryExecutionContext executionContext)
        Description copied from interface: ReactiveHandler
        Execute the multi-table update or delete indicated by the SQM AST passed in when this Handler was created.
        Specified by:
        reactiveExecute in interface ReactiveHandler
        Parameters:
        executionContext - Contextual information needed for execution
        Returns:
        The "number of rows affected" count
      • resolveDelegate

        protected ReactiveTableBasedInsertHandler.ReactiveExecutionDelegate resolveDelegate​(org.hibernate.query.spi.DomainQueryExecutionContext executionContext)
        Overrides:
        resolveDelegate in class org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler
      • buildExecutionDelegate

        protected org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler.ExecutionDelegate buildExecutionDelegate​(org.hibernate.query.sqm.tree.insert.SqmInsertStatement<?> sqmInsert,
                                                                                                                                       org.hibernate.query.sqm.mutation.internal.MultiTableSqmMutationConverter sqmConverter,
                                                                                                                                       org.hibernate.dialect.temptable.TemporaryTable entityTable,
                                                                                                                                       org.hibernate.query.sqm.mutation.internal.temptable.AfterUseAction afterUseAction,
                                                                                                                                       java.util.function.Function<org.hibernate.engine.spi.SharedSessionContractImplementor,​java.lang.String> sessionUidAccess,
                                                                                                                                       org.hibernate.query.sqm.internal.DomainParameterXref domainParameterXref,
                                                                                                                                       org.hibernate.sql.ast.tree.from.TableGroup insertingTableGroup,
                                                                                                                                       java.util.Map<java.lang.String,​org.hibernate.sql.ast.tree.from.TableReference> tableReferenceByAlias,
                                                                                                                                       java.util.List<org.hibernate.sql.ast.tree.update.Assignment> assignments,
                                                                                                                                       org.hibernate.sql.ast.tree.insert.InsertSelectStatement insertStatement,
                                                                                                                                       java.util.Map<org.hibernate.query.sqm.tree.expression.SqmParameter<?>,​java.util.List<java.util.List<org.hibernate.sql.ast.tree.expression.JdbcParameter>>> parameterResolutions,
                                                                                                                                       org.hibernate.sql.ast.tree.expression.JdbcParameter sessionUidParameter,
                                                                                                                                       java.util.Map<org.hibernate.query.sqm.tree.expression.SqmParameter<?>,​org.hibernate.metamodel.mapping.MappingModelExpressible<?>> paramTypeResolutions,
                                                                                                                                       org.hibernate.query.spi.DomainQueryExecutionContext executionContext)
        Overrides:
        buildExecutionDelegate in class org.hibernate.query.sqm.mutation.internal.temptable.TableBasedInsertHandler