@@ -753,22 +753,26 @@ public CommonQueryContract setParameter(String name, Object value) {
753753 }
754754
755755 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 );
765760 }
766761
767762 binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
768763
769764 return this ;
770765 }
771766
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+ }
772776
773777 private boolean isInstance (BindableType <?> parameterType , Object value ) {
774778 final SqmExpressible <?> sqmExpressible =
@@ -842,15 +846,10 @@ public CommonQueryContract setParameter(int position, Object value) {
842846 }
843847
844848 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 );
854853 }
855854
856855 binding .setBindValue ( value , resolveJdbcParameterTypeIfNecessary () );
0 commit comments