@@ -65,8 +65,8 @@ private QueryParameterBindingsImpl(
6565ParameterMetadataImplementor parameterMetadata ) {
6666this .parameterMetadata = parameterMetadata ;
6767final var queryParameters = parameterMetadata .getRegistrations ();
68- this . parameterBindingMap = linkedMapOfSize ( queryParameters .size () );
69- this . parameterBindingMapByNameOrPosition = mapOfSize ( queryParameters .size () );
68+ parameterBindingMap = linkedMapOfSize ( queryParameters .size () );
69+ parameterBindingMapByNameOrPosition = mapOfSize ( queryParameters .size () );
7070for ( var queryParameter : queryParameters ) {
7171parameterBindingMap .put ( queryParameter ,
7272createBinding ( sessionFactory , parameterMetadata , queryParameter ) );
@@ -84,28 +84,30 @@ else if ( queryParameter.isOrdinal() ) {
8484}
8585
8686private static <T > QueryParameterBindingImpl <T > createBinding (
87- SessionFactoryImplementor factory , ParameterMetadataImplementor parameterMetadata , QueryParameter <T > parameter ) {
87+ SessionFactoryImplementor factory ,
88+ ParameterMetadataImplementor parameterMetadata ,
89+ QueryParameter <T > parameter ) {
8890return new QueryParameterBindingImpl <>( parameter , factory ,
8991parameterMetadata .getInferredParameterType ( parameter ) );
9092}
9193
92- private QueryParameterBindingsImpl (QueryParameterBindingsImpl original , SessionFactoryImplementor sessionFactory ) {
94+ private QueryParameterBindingsImpl (
95+ QueryParameterBindingsImpl original ,
96+ SessionFactoryImplementor sessionFactory ) {
9397this .parameterMetadata = original .parameterMetadata ;
9498this .parameterBindingMap = linkedMapOfSize ( original .parameterBindingMap .size () );
95- this .parameterBindingMapByNameOrPosition = mapOfSize ( original .parameterBindingMapByNameOrPosition .size () );
96- for ( var entry : original .parameterBindingMap .entrySet () ) {
97- parameterBindingMap .put ( entry .getKey (), createBinding ( sessionFactory , entry .getValue () ) );
98- }
99- for ( var entry : parameterBindingMap .entrySet () ) {
100- final var queryParameter = entry .getKey ();
101- final var parameterBinding = entry .getValue ();
99+ this .parameterBindingMapByNameOrPosition =
100+ mapOfSize ( original .parameterBindingMapByNameOrPosition .size () );
101+ original .parameterBindingMap .forEach ( (key , value ) ->
102+ parameterBindingMap .put ( key , createBinding ( sessionFactory , value ) ) );
103+ parameterBindingMap .forEach ( (queryParameter , parameterBinding ) -> {
102104if ( queryParameter .isNamed () ) {
103105parameterBindingMapByNameOrPosition .put ( queryParameter .getName (), parameterBinding );
104106}
105- else if ( queryParameter .getPosition () != null ) {
107+ else if ( queryParameter .isOrdinal () ) {
106108parameterBindingMapByNameOrPosition .put ( queryParameter .getPosition (), parameterBinding );
107109}
108- }
110+ } );
109111}
110112
111113private static <T > QueryParameterBindingImpl <T > createBinding (
@@ -164,10 +166,14 @@ public void validate() {
164166if ( !entry .getValue ().isBound () ) {
165167final var queryParameter = entry .getKey ();
166168if ( queryParameter .isNamed () ) {
167- throw new QueryParameterException ( "No argument for named parameter ':" + queryParameter .getName () + "'" );
169+ throw new QueryParameterException (
170+ "No argument for named parameter ':"
171+ + queryParameter .getName () + "'" );
168172}
169173else {
170- throw new QueryParameterException ( "No argument for ordinal parameter '?" + queryParameter .getPosition () + "'" );
174+ throw new QueryParameterException (
175+ "No argument for ordinal parameter '?"
176+ + queryParameter .getPosition () + "'" );
171177}
172178}
173179}
@@ -231,7 +237,8 @@ public QueryKey.ParameterBindingsMemento generateQueryKeyMemento(SharedSessionCo
231237
232238private void handleQueryParameters (SharedSessionContractImplementor session , MutableCacheKeyImpl mutableCacheKey ) {
233239final var typeConfiguration = session .getFactory ().getTypeConfiguration ();
234- // We know that parameters are consumed in processing order, this ensures consistency of generated cache keys
240+ // We know that parameters are consumed in processing order;
241+ // this ensures the consistency of generated cache keys
235242for ( var entry : parameterBindingMap .entrySet () ) {
236243final var queryParameter = entry .getKey ();
237244final var binding = entry .getValue ();
@@ -301,12 +308,14 @@ else if ( binding.getBindValue() != null ) {
301308
302309if ( bindType == null ) {
303310if ( queryParameter .isNamed () ) {
304- throw new QueryParameterException ( "Could not determine mapping type for named parameter ':"
305- + queryParameter .getName () + "'" );
311+ throw new QueryParameterException (
312+ "Could not determine mapping type for named parameter ':"
313+ + queryParameter .getName () + "'" );
306314}
307315else {
308- throw new QueryParameterException ( "Could not determine mapping type for ordinal parameter '?"
309- + queryParameter .getPosition () + "'" );
316+ throw new QueryParameterException (
317+ "Could not determine mapping type for ordinal parameter '?"
318+ + queryParameter .getPosition () + "'" );
310319}
311320}
312321
0 commit comments