@@ -753,22 +753,26 @@ public CommonQueryContract setParameter(String name, Object value) {
753
753
}
754
754
755
755
final QueryParameterBinding <Object > binding = getQueryParameterBindings ().getBinding ( name );
756
- final QueryParameter <Object > param = binding .getQueryParameter ();
757
- if ( param .allowsMultiValuedBinding () ) {
758
- final BindableType <?> hibernateType = param .getHibernateType ();
759
- if ( hibernateType == null || isInstance ( hibernateType , value ) ) {
760
- if ( value instanceof Collection && !isRegisteredAsBasicType ( value .getClass () ) ) {
761
- //noinspection rawtypes
762
- return setParameterList ( name , (Collection ) value );
763
- }
764
- }
756
+ if ( multipleBinding ( binding .getQueryParameter (), value )
757
+ && value instanceof Collection <?> collectionValue
758
+ && !isRegisteredAsBasicType ( value .getClass () ) ) {
759
+ return setParameterList ( name , collectionValue );
765
760
}
766
761
767
762
binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
768
763
769
764
return this ;
770
765
}
771
766
767
+ private boolean multipleBinding (QueryParameter <Object > param , Object value ){
768
+ if ( param .allowsMultiValuedBinding () ) {
769
+ final BindableType <?> hibernateType = param .getHibernateType ();
770
+ if ( hibernateType == null || hibernateType instanceof NullSqmExpressible || isInstance ( hibernateType , value ) ) {
771
+ return true ;
772
+ }
773
+ }
774
+ return false ;
775
+ }
772
776
773
777
private boolean isInstance (BindableType <?> parameterType , Object value ) {
774
778
final SqmExpressible <?> sqmExpressible =
@@ -842,15 +846,10 @@ public CommonQueryContract setParameter(int position, Object value) {
842
846
}
843
847
844
848
final QueryParameterBinding <Object > binding = getQueryParameterBindings ().getBinding ( position );
845
- final QueryParameter <Object > param = binding .getQueryParameter ();
846
- if ( param .allowsMultiValuedBinding () ) {
847
- final BindableType <?> hibernateType = param .getHibernateType ();
848
- if ( hibernateType == null || hibernateType instanceof NullSqmExpressible || isInstance ( hibernateType , value ) ) {
849
- if ( value instanceof Collection && !isRegisteredAsBasicType ( value .getClass () ) ) {
850
- //noinspection rawtypes
851
- return setParameterList ( position , (Collection ) value );
852
- }
853
- }
849
+ if ( multipleBinding ( binding .getQueryParameter (), value )
850
+ && value instanceof Collection <?> collectionValue
851
+ && !isRegisteredAsBasicType ( value .getClass () ) ) {
852
+ return setParameterList ( position , collectionValue );
854
853
}
855
854
856
855
binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
0 commit comments