Skip to content

Commit 10cfd12

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 e7d8bc3 commit 10cfd12

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
@@ -6200,12 +6200,12 @@ private void resolveSqmParameter(
62006200
BiConsumer<Integer,JdbcParameter> jdbcParameterConsumer) {
62016201
sqmParameterMappingModelTypes.put( expression, valueMapping );
62026202
final List<List<JdbcParameter>> jdbcParams = jdbcParamsBySqmParam.get( expression );
6203-
final int parameterId = jdbcParams == null ? jdbcParamsBySqmParam.size()
6203+
final int parameterId = jdbcParams == null ? jdbcParameters.getJdbcParameters().size()
62046204
: NullnessUtil.castNonNull( jdbcParams.get( 0 ).get( 0 ).getParameterId() );
62056205
final Bindable bindable = bindable( valueMapping );
62066206
if ( bindable instanceof SelectableMappings selectableMappings ) {
62076207
selectableMappings.forEachSelectable(
6208-
(index, selectableMapping) -> jdbcParameterConsumer.accept( index, new SqlTypedMappingJdbcParameter( selectableMapping, parameterId ) )
6208+
(index, selectableMapping) -> jdbcParameterConsumer.accept( index, new SqlTypedMappingJdbcParameter( selectableMapping, parameterId + index ) )
62096209
);
62106210
}
62116211
else if ( bindable instanceof SelectableMapping selectableMapping ) {
@@ -6221,7 +6221,7 @@ else if ( bindable instanceof SelectableMapping selectableMapping ) {
62216221
bindable.forEachJdbcType(
62226222
(index, jdbcMapping) -> jdbcParameterConsumer.accept(
62236223
index,
6224-
new JdbcParameterImpl( jdbcMapping, parameterId )
6224+
new JdbcParameterImpl( jdbcMapping, parameterId + index )
62256225
)
62266226
);
62276227
}

0 commit comments

Comments
 (0)