diff --git a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/temptable/ReactiveExecuteWithTemporaryTableHelper.java b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/temptable/ReactiveExecuteWithTemporaryTableHelper.java index 164403171..72359ee58 100644 --- a/hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/temptable/ReactiveExecuteWithTemporaryTableHelper.java +++ b/hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/temptable/ReactiveExecuteWithTemporaryTableHelper.java @@ -21,7 +21,6 @@ import org.hibernate.dialect.temptable.TemporaryTableSessionUidColumn; import org.hibernate.dialect.temptable.TemporaryTableStrategy; import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment; -import org.hibernate.engine.jdbc.spi.JdbcCoordinator; import org.hibernate.engine.jdbc.spi.JdbcServices; import org.hibernate.engine.spi.SessionFactoryImplementor; import org.hibernate.engine.spi.SharedSessionContractImplementor; @@ -30,6 +29,7 @@ import org.hibernate.query.sqm.mutation.internal.temptable.ExecuteWithTemporaryTableHelper; import org.hibernate.query.sqm.mutation.spi.AfterUseAction; import org.hibernate.query.sqm.mutation.spi.BeforeUseAction; +import org.hibernate.reactive.adaptor.impl.PreparedStatementAdaptor; import org.hibernate.reactive.logging.impl.Log; import org.hibernate.reactive.logging.impl.LoggerFactory; import org.hibernate.reactive.pool.ReactiveConnection; @@ -185,15 +185,14 @@ public static CompletionStage loadInsertedRowNumbers( ExecutionContext executionContext) { final TemporaryTableSessionUidColumn sessionUidColumn = temporaryTable.getSessionUidColumn(); final SharedSessionContractImplementor session = executionContext.getSession(); - final JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator(); - PreparedStatement preparedStatement = null; - preparedStatement = jdbcCoordinator.getStatementPreparer().prepareStatement( sqlSelect ); - Object[] parameters = new Object[1]; - if ( sessionUidColumn != null ) { - parameters[0] = UUID.fromString( sessionUidAccess.apply( session ) ); - } + final Object[] parameters = PreparedStatementAdaptor.bind( statement -> { + if ( sessionUidColumn != null ) { + sessionUidColumn.getJdbcMapping().getJdbcValueBinder() + .bind( statement, UUID.fromString( sessionUidAccess.apply( session ) ), 1, session ); + } + } ); final Integer[] rowNumbers = new Integer[rows]; - return reactiveConnection(session).selectJdbc( sqlSelect, parameters ) + return reactiveConnection( session ).selectJdbc( sqlSelect, parameters ) .thenApply( resultSet -> getRowNumbers( rows, resultSet, rowNumbers ) ); }