| 
21 | 21 | import org.hibernate.dialect.temptable.TemporaryTableSessionUidColumn;  | 
22 | 22 | import org.hibernate.dialect.temptable.TemporaryTableStrategy;  | 
23 | 23 | import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;  | 
24 |  | -import org.hibernate.engine.jdbc.spi.JdbcCoordinator;  | 
25 | 24 | import org.hibernate.engine.jdbc.spi.JdbcServices;  | 
26 | 25 | import org.hibernate.engine.spi.SessionFactoryImplementor;  | 
27 | 26 | import org.hibernate.engine.spi.SharedSessionContractImplementor;  | 
 | 
30 | 29 | import org.hibernate.query.sqm.mutation.internal.temptable.ExecuteWithTemporaryTableHelper;  | 
31 | 30 | import org.hibernate.query.sqm.mutation.spi.AfterUseAction;  | 
32 | 31 | import org.hibernate.query.sqm.mutation.spi.BeforeUseAction;  | 
 | 32 | +import org.hibernate.reactive.adaptor.impl.PreparedStatementAdaptor;  | 
33 | 33 | import org.hibernate.reactive.logging.impl.Log;  | 
34 | 34 | import org.hibernate.reactive.logging.impl.LoggerFactory;  | 
35 | 35 | import org.hibernate.reactive.pool.ReactiveConnection;  | 
@@ -185,15 +185,14 @@ public static CompletionStage<Integer[]> loadInsertedRowNumbers(  | 
185 | 185 | 			ExecutionContext executionContext) {  | 
186 | 186 | 		final TemporaryTableSessionUidColumn sessionUidColumn = temporaryTable.getSessionUidColumn();  | 
187 | 187 | 		final SharedSessionContractImplementor session = executionContext.getSession();  | 
188 |  | -		final JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator();  | 
189 |  | -		PreparedStatement preparedStatement = null;  | 
190 |  | -		preparedStatement = jdbcCoordinator.getStatementPreparer().prepareStatement( sqlSelect );  | 
191 |  | -		Object[] parameters = new Object[1];  | 
192 |  | -		if ( sessionUidColumn != null ) {  | 
193 |  | -			parameters[0] = UUID.fromString( sessionUidAccess.apply( session ) );  | 
194 |  | -		}  | 
 | 188 | +		final Object[] parameters = PreparedStatementAdaptor.bind( statement -> {  | 
 | 189 | +			if ( sessionUidColumn != null ) {  | 
 | 190 | +				sessionUidColumn.getJdbcMapping().getJdbcValueBinder()  | 
 | 191 | +						.bind( statement, UUID.fromString( sessionUidAccess.apply( session ) ), 1, session );  | 
 | 192 | +			}  | 
 | 193 | +		} );  | 
195 | 194 | 		final Integer[] rowNumbers = new Integer[rows];  | 
196 |  | -		return reactiveConnection(session).selectJdbc( sqlSelect, parameters )  | 
 | 195 | +		return reactiveConnection( session ).selectJdbc( sqlSelect, parameters )  | 
197 | 196 | 				.thenApply( resultSet -> getRowNumbers( rows, resultSet, rowNumbers ) );  | 
198 | 197 | 	}  | 
199 | 198 | 
 
  | 
 | 
0 commit comments