@@ -749,22 +749,29 @@ public CommonQueryContract setParameter(String name, Object value) {
749
749
}
750
750
else {
751
751
final QueryParameterBinding <Object > binding = getQueryParameterBindings ().getBinding ( name );
752
- final QueryParameter <Object > param = binding .getQueryParameter ();
753
- if ( param .allowsMultiValuedBinding () ) {
754
- final BindableType <?> hibernateType = param .getHibernateType ();
755
- if ( hibernateType == null || isInstance ( hibernateType , value ) ) {
756
- if ( value instanceof Collection <?> collection
757
- && !isRegisteredAsBasicType ( value .getClass () ) ) {
758
- return setParameterList ( name , collection );
759
- }
760
- }
752
+ if ( multipleBinding ( binding .getQueryParameter (), value )
753
+ && value instanceof Collection <?> collectionValue
754
+ && !isRegisteredAsBasicType ( value .getClass () ) ) {
755
+ return setParameterList ( name , collectionValue );
761
756
}
762
757
binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
763
758
}
764
759
765
760
return this ;
766
761
}
767
762
763
+ private boolean multipleBinding (QueryParameter <Object > param , Object value ){
764
+ if ( param .allowsMultiValuedBinding () ) {
765
+ final BindableType <?> hibernateType = param .getHibernateType ();
766
+ if ( hibernateType == null
767
+ || hibernateType instanceof NullSqmExpressible
768
+ || isInstance ( hibernateType , value ) ) {
769
+ return true ;
770
+ }
771
+ }
772
+ return false ;
773
+ }
774
+
768
775
private <T > void setTypedParameter (String name , TypedParameterValue <T > typedValue ) {
769
776
final BindableType <T > type = typedValue .getType ();
770
777
setParameter ( name , typedValue .getValue (), type != null ? type : typedValue .getTypeReference () );
@@ -815,17 +822,10 @@ public CommonQueryContract setParameter(int position, Object value) {
815
822
}
816
823
else {
817
824
final QueryParameterBinding <Object > binding = getQueryParameterBindings ().getBinding ( position );
818
- final QueryParameter <Object > param = binding .getQueryParameter ();
819
- if ( param .allowsMultiValuedBinding () ) {
820
- final BindableType <?> hibernateType = param .getHibernateType ();
821
- if ( hibernateType == null
822
- || hibernateType instanceof NullSqmExpressible
823
- || isInstance ( hibernateType , value ) ) {
824
- if ( value instanceof Collection <?> collection
825
- && !isRegisteredAsBasicType ( value .getClass () ) ) {
826
- return setParameterList ( position , collection );
827
- }
828
- }
825
+ if ( multipleBinding ( binding .getQueryParameter (), value )
826
+ && value instanceof Collection <?> collectionValue
827
+ && !isRegisteredAsBasicType ( value .getClass () ) ) {
828
+ return setParameterList ( position , collectionValue );
829
829
}
830
830
binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
831
831
}
0 commit comments