@@ -475,6 +475,7 @@ public abstract class BaseSqmToSqlAstConverter<T extends Statement> extends Base
475475 private final QueryOptions queryOptions ;
476476 private final LoadQueryInfluencers loadQueryInfluencers ;
477477
478+ private int jdbcParamsBySqmParamParameterId = 0 ;
478479 private final Map <SqmParameter <?>, List <List <JdbcParameter >>> jdbcParamsBySqmParam = new IdentityHashMap <>();
479480 private final JdbcParameters jdbcParameters = new JdbcParametersImpl ();
480481 private final DomainParameterXref domainParameterXref ;
@@ -5830,6 +5831,7 @@ protected Expression consumeSqmParameter(
58305831 );
58315832
58325833 this .jdbcParameters .addParameters ( jdbcParametersForSqm );
5834+ jdbcParamsBySqmParamParameterId += jdbcParametersForSqm .size ();
58335835 this .jdbcParamsBySqmParam
58345836 .computeIfAbsent ( sqmParameter , k -> new ArrayList <>( 1 ) )
58355837 .add ( jdbcParametersForSqm );
@@ -6200,12 +6202,12 @@ private void resolveSqmParameter(
62006202 BiConsumer <Integer ,JdbcParameter > jdbcParameterConsumer ) {
62016203 sqmParameterMappingModelTypes .put ( expression , valueMapping );
62026204 final List <List <JdbcParameter >> jdbcParams = jdbcParamsBySqmParam .get ( expression );
6203- final int parameterId = jdbcParams == null ? jdbcParamsBySqmParam . size ()
6205+ final int parameterId = jdbcParams == null ? jdbcParamsBySqmParamParameterId
62046206 : NullnessUtil .castNonNull ( jdbcParams .get ( 0 ).get ( 0 ).getParameterId () );
62056207 final Bindable bindable = bindable ( valueMapping );
62066208 if ( bindable instanceof SelectableMappings selectableMappings ) {
62076209 selectableMappings .forEachSelectable (
6208- (index , selectableMapping ) -> jdbcParameterConsumer .accept ( index , new SqlTypedMappingJdbcParameter ( selectableMapping , parameterId ) )
6210+ (index , selectableMapping ) -> jdbcParameterConsumer .accept ( index , new SqlTypedMappingJdbcParameter ( selectableMapping , parameterId + index ) )
62096211 );
62106212 }
62116213 else if ( bindable instanceof SelectableMapping selectableMapping ) {
@@ -6221,7 +6223,7 @@ else if ( bindable instanceof SelectableMapping selectableMapping ) {
62216223 bindable .forEachJdbcType (
62226224 (index , jdbcMapping ) -> jdbcParameterConsumer .accept (
62236225 index ,
6224- new JdbcParameterImpl ( jdbcMapping , parameterId )
6226+ new JdbcParameterImpl ( jdbcMapping , parameterId + index )
62256227 )
62266228 );
62276229 }
0 commit comments