Skip to content

Commit 25b1468

Browse files
committed
HHH-19792 Wrong query generated when an EmbeddedId is used in a WHERE clause using the IN operator and NativeParameterMarkerStrategy
1 parent 2c0aee0 commit 25b1468

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6199,12 +6199,12 @@ private void resolveSqmParameter(
61996199
BiConsumer<Integer,JdbcParameter> jdbcParameterConsumer) {
62006200
sqmParameterMappingModelTypes.put( expression, valueMapping );
62016201
final List<List<JdbcParameter>> jdbcParams = jdbcParamsBySqmParam.get( expression );
6202-
final int parameterId = jdbcParams == null ? jdbcParamsBySqmParam.size()
6202+
final int parameterId = jdbcParams == null ? jdbcParameters.getJdbcParameters().size()
62036203
: NullnessUtil.castNonNull( jdbcParams.get( 0 ).get( 0 ).getParameterId() );
62046204
final Bindable bindable = bindable( valueMapping );
62056205
if ( bindable instanceof SelectableMappings selectableMappings ) {
62066206
selectableMappings.forEachSelectable(
6207-
(index, selectableMapping) -> jdbcParameterConsumer.accept( index, new SqlTypedMappingJdbcParameter( selectableMapping, parameterId ) )
6207+
(index, selectableMapping) -> jdbcParameterConsumer.accept( index, new SqlTypedMappingJdbcParameter( selectableMapping, parameterId + index ) )
62086208
);
62096209
}
62106210
else if ( bindable instanceof SelectableMapping selectableMapping ) {
@@ -6220,7 +6220,7 @@ else if ( bindable instanceof SelectableMapping selectableMapping ) {
62206220
bindable.forEachJdbcType(
62216221
(index, jdbcMapping) -> jdbcParameterConsumer.accept(
62226222
index,
6223-
new JdbcParameterImpl( jdbcMapping, parameterId )
6223+
new JdbcParameterImpl( jdbcMapping, parameterId + index )
62246224
)
62256225
);
62266226
}

0 commit comments

Comments
 (0)