Skip to content

Commit aa35975

Browse files
committed
fix
1 parent 029a48c commit aa35975

File tree

7 files changed

+34
-7
lines changed

7 files changed

+34
-7
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/service/AbstractReactiveInformationSchemaBasedExtractorImpl.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,11 @@ protected <T> T processSchemaResultSet(
183183
final List<Object> parameters = new ArrayList<>();
184184
appendClauseAndParameterIfNotNullOrEmpty( " and catalog_name = ", catalog, sb, parameters );
185185
appendClauseAndParameterIfNotNullOrEmpty( " and schema_name like ", schemaPattern, sb, parameters );
186-
return getExtractionContext().getQueryResults( sb.toString(), parameters.toArray(), processor );
186+
return getExtractionContext().getQueryResults(
187+
sb.toString(),
188+
parameters.toArray(),
189+
processor
190+
);
187191
}
188192

189193
protected boolean appendClauseAndParameterIfNotNullOrEmpty(
@@ -195,12 +199,16 @@ protected boolean appendClauseAndParameterIfNotNullOrEmpty(
195199
if ( parameter != null && ( ! String.class.isInstance( parameter ) || ! ( (String) parameter ).isEmpty() ) ) {
196200
parameters.add( parameter );
197201
sb.append( clause );
198-
sb.append( "?");
202+
sb.append( parameterMarker( parameters.size() ) );
199203
return true;
200204
}
201205
return false;
202206
}
203207

208+
protected String parameterMarker(int pos) {
209+
return "?";
210+
}
211+
204212
@Override
205213
protected <T> T processTableResultSet(
206214
String catalog,

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/service/OracleSqlReactiveInformationExtractorImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,10 +61,15 @@ protected <T> T processIndexInfoResultSet(
6161
appendClauseAndParameterIfNotNullOrEmpty( " and ui.table_owner = ", schema, sb, parameters );
6262
appendClauseAndParameterIfNotNullOrEmpty( " and ui.table_name = ", table, sb, parameters );
6363

64-
6564
return getExtractionContext().getQueryResults( sb.toString(), parameters.toArray(), processor );
6665
}
6766

67+
@Override
68+
protected String parameterMarker(int pos) {
69+
return ":" + pos;
70+
}
71+
72+
6873
@Override
6974
protected <T> T processImportedKeysResultSet(
7075
String catalog,

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/service/PostgreSqlReactiveInformationExtractorImpl.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,11 @@ protected <T> T processIndexInfoResultSet(
100100
);
101101
}
102102

103+
@Override
104+
protected String parameterMarker(int pos) {
105+
return "$" + pos;
106+
}
107+
103108
@Override
104109
protected <T> T processImportedKeysResultSet(
105110
String catalog,
@@ -135,7 +140,6 @@ protected <T> T processImportedKeysResultSet(
135140

136141
// No need to order by catalog since it is always null.
137142
sb.append( " order by pkn.nspname, pkc.relname, con.conname, pos.n" );
138-
139143
return getExtractionContext().getQueryResults( sb.toString(), parameterValues.toArray(), processor );
140144
}
141145

hibernate-reactive-core/src/main/java/org/hibernate/reactive/provider/service/SqlServerReactiveInformationExtractorImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,12 @@ protected <T> T processTableResultSet(
9393
return getExtractionContext().getQueryResults( sb.toString(), parameterValues.toArray(), processor );
9494
}
9595

96+
97+
@Override
98+
protected String parameterMarker(int pos) {
99+
return "@P" + pos;
100+
}
101+
96102
@Override
97103
protected <T> T processColumnsResultSet(
98104
String catalog,

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sql/internal/ReactiveNativeNonSelectQueryPlan.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.hibernate.query.sql.spi.ParameterOccurrence;
2121
import org.hibernate.query.sqm.internal.SqmJdbcExecutionContextAdapter;
2222
import org.hibernate.reactive.engine.spi.ReactiveSharedSessionContractImplementor;
23+
import org.hibernate.reactive.pool.impl.Parameters;
2324
import org.hibernate.reactive.query.sql.spi.ReactiveNonSelectQueryPlan;
2425
import org.hibernate.reactive.sql.exec.internal.StandardReactiveJdbcMutationExecutor;
2526
import org.hibernate.sql.exec.internal.JdbcParameterBindingsImpl;
@@ -71,8 +72,9 @@ public CompletionStage<Integer> executeReactiveUpdate(DomainQueryExecutionContex
7172

7273
final SQLQueryParser parser = new SQLQueryParser( sql, null, session.getFactory() );
7374

75+
Parameters parameters = Parameters.instance( session.getDialect() );
7476
final JdbcOperationQueryMutation jdbcMutation = new JdbcOperationQueryMutationNative(
75-
parser.process(),
77+
parameters.process( parser.process() ),
7678
jdbcParameterBinders,
7779
affectedTableNames
7880
);

hibernate-reactive-core/src/main/java/org/hibernate/reactive/query/sql/internal/ReactiveNativeSelectQueryPlanImpl.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.util.Set;
1212
import java.util.concurrent.CompletionStage;
1313

14+
import org.hibernate.dialect.Dialect;
1415
import org.hibernate.engine.spi.SessionFactoryImplementor;
1516
import org.hibernate.query.results.ResultSetMapping;
1617
import org.hibernate.query.spi.DomainQueryExecutionContext;
@@ -22,6 +23,7 @@
2223
import org.hibernate.query.sql.spi.ParameterOccurrence;
2324
import org.hibernate.query.sqm.internal.SqmJdbcExecutionContextAdapter;
2425
import org.hibernate.reactive.engine.spi.ReactiveSharedSessionContractImplementor;
26+
import org.hibernate.reactive.pool.impl.Parameters;
2527
import org.hibernate.reactive.query.internal.ReactiveResultSetMappingProcessor;
2628
import org.hibernate.reactive.query.spi.ReactiveNativeSelectQueryPlan;
2729
import org.hibernate.reactive.sql.exec.internal.StandardReactiveSelectExecutor;
@@ -59,7 +61,8 @@ public ReactiveNativeSelectQueryPlanImpl(
5961
resultSetMapping.addAffectedTableNames( affectedTableNames, sessionFactory );
6062
}
6163
this.affectedTableNames = affectedTableNames;
62-
this.sql = parser.process();
64+
Dialect dialect = sessionFactory.getJdbcServices().getDialect();
65+
this.sql = Parameters.instance( dialect ).process( parser.process() );
6366
this.parameterList = parameterList;
6467

6568
}

hibernate-reactive-core/src/main/java/org/hibernate/reactive/sql/results/internal/ReactiveDeferredResultSetAccess.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,6 @@ private CompletionStage<ResultSet> executeQuery() {
156156
LOG.tracef( "Executing query to retrieve ResultSet : %s", getFinalSql() );
157157

158158
Dialect dialect = executionContext.getSession().getJdbcServices().getDialect();
159-
// I'm not sure calling Parameters here is necessary, the query should already have the right parameters
160159
final String sql = getFinalSql();
161160
Object[] parameters = PreparedStatementAdaptor.bind( super::bindParameters );
162161

0 commit comments

Comments
 (0)