|
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