Skip to content

Commit 6b25007

Browse files
committed
Fix parameters binding
1 parent f036525 commit 6b25007

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/cte/ReactiveCteMutationStrategy.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public MultiTableHandlerBuildResult buildHandler(SqmDeleteOrUpdateStatement<?> s
4040
return new MultiTableHandlerBuildResult( multiTableHandler, firstJdbcParameterBindings.get() );
4141
}
4242

43+
@Override
4344
public ReactiveHandler buildHandler(SqmDeleteStatement<?> sqmDelete, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context, MutableObject<JdbcParameterBindings> firstJdbcParameterBindingsConsumer) {
4445
checkMatch( sqmDelete );
4546
if ( getRootDescriptor().getSoftDeleteMapping() != null ) {
@@ -66,6 +67,7 @@ public ReactiveHandler buildHandler(SqmDeleteStatement<?> sqmDelete, DomainParam
6667
}
6768
}
6869

70+
@Override
6971
public MultiTableHandler buildHandler(SqmUpdateStatement<?> sqmUpdate, DomainParameterXref domainParameterXref, DomainQueryExecutionContext context, MutableObject<JdbcParameterBindings> firstJdbcParameterBindingsConsumer) {
7072
checkMatch( sqmUpdate );
7173
return new ReactiveCteUpdateHandler(

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sqm/mutation/internal/temptable/ReactiveExecuteWithTemporaryTableHelper.java

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import org.hibernate.dialect.temptable.TemporaryTableSessionUidColumn;
2222
import org.hibernate.dialect.temptable.TemporaryTableStrategy;
2323
import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
24-
import org.hibernate.engine.jdbc.spi.JdbcCoordinator;
2524
import org.hibernate.engine.jdbc.spi.JdbcServices;
2625
import org.hibernate.engine.spi.SessionFactoryImplementor;
2726
import org.hibernate.engine.spi.SharedSessionContractImplementor;
@@ -30,6 +29,7 @@
3029
import org.hibernate.query.sqm.mutation.internal.temptable.ExecuteWithTemporaryTableHelper;
3130
import org.hibernate.query.sqm.mutation.spi.AfterUseAction;
3231
import org.hibernate.query.sqm.mutation.spi.BeforeUseAction;
32+
import org.hibernate.reactive.adaptor.impl.PreparedStatementAdaptor;
3333
import org.hibernate.reactive.logging.impl.Log;
3434
import org.hibernate.reactive.logging.impl.LoggerFactory;
3535
import org.hibernate.reactive.pool.ReactiveConnection;
@@ -185,15 +185,14 @@ public static CompletionStage<Integer[]> loadInsertedRowNumbers(
185185
ExecutionContext executionContext) {
186186
final TemporaryTableSessionUidColumn sessionUidColumn = temporaryTable.getSessionUidColumn();
187187
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+
} );
195194
final Integer[] rowNumbers = new Integer[rows];
196-
return reactiveConnection(session).selectJdbc( sqlSelect, parameters )
195+
return reactiveConnection( session ).selectJdbc( sqlSelect, parameters )
197196
.thenApply( resultSet -> getRowNumbers( rows, resultSet, rowNumbers ) );
198197
}
199198

0 commit comments

Comments
 (0)