/** * @deprecated (since 5.2) expected changes to "collection-valued parameter binding" in 6.0 */ @Deprecated @SuppressWarnings("unchecked") private <T> QueryParameter<T> resolveQueryParameter(String name) { final QueryParameter<Object> param = parameterMetadata.getQueryParameter( name ); if ( param == null ) { throw new IllegalArgumentException( "Unable to resolve given parameter name [" + name + "] to QueryParameter reference" ); } return (QueryParameter<T>) param; }
/** * @deprecated (since 5.2) expected changes to "collection-valued parameter binding" in 6.0 */ @Deprecated @SuppressWarnings("unchecked") private <T> QueryParameter<T> resolveQueryParameter(int name) { final QueryParameter<Object> param = parameterMetadata.getQueryParameter( name ); if ( param == null ) { throw new IllegalArgumentException( "Unable to resolve given parameter name [" + name + "] to QueryParameter reference" ); } return (QueryParameter<T>) param; }
@Override @SuppressWarnings("unchecked") public QueryParameterBinding getBinding(int position) { return getBinding( parameterMetadata.getQueryParameter( position ) ); }
@Override @SuppressWarnings("unchecked") public QueryParameterBinding getBinding(String name) { return getBinding( parameterMetadata.getQueryParameter( name ) ); }
private QueryParameter resolveParameter(QueryParameter queryParameter) { if ( queryParameter.getName() != null ) { return parameterMetadata.getQueryParameter( queryParameter.getName() ); } else { return parameterMetadata.getQueryParameter( queryParameter.getPosition() ); } }
/** * @deprecated (since 5.2) expected changes to "collection-valued parameter binding" in 6.0 */ @Deprecated @SuppressWarnings("unchecked") private <T> QueryParameterBinding<T> getAndRemoveBinding(QueryParameter<T> parameter) { QueryParameterBinding<T> binding = parameterBindingMap.remove( parameter ); if ( binding == null ) { if ( parameter.getName() != null ) { parameter = parameterMetadata.getQueryParameter( parameter.getName() ); } else { parameter = parameterMetadata.getQueryParameter( parameter.getPosition() ); } if ( parameter == null ) { throw new HibernateException( "Unable to resolve QueryParameter" ); } } binding = parameterBindingMap.remove( parameter ); return binding; }
@Override @SuppressWarnings("unchecked") public <T> QueryParameter<T> getParameter(int position, Class<T> type) { getProducer().checkOpen( false ); try { final QueryParameter parameter = getParameterMetadata().getQueryParameter( position ); if ( !parameter.getParameterType().isAssignableFrom( type ) ) { throw new IllegalArgumentException( "The type [" + parameter.getParameterType().getName() + "] associated with the parameter corresponding to position [" + position + "] is not assignable to requested Java type [" + type.getName() + "]" ); } return parameter; } catch ( HibernateException e ) { throw getExceptionConverter().convert( e ); } }
@Override @SuppressWarnings("unchecked") public <T> QueryParameter<T> getParameter(String name, Class<T> type) { getProducer().checkOpen( false ); try { final QueryParameter parameter = getParameterMetadata().getQueryParameter( name ); if ( !parameter.getParameterType().isAssignableFrom( type ) ) { throw new IllegalArgumentException( "The type [" + parameter.getParameterType().getName() + "] associated with the parameter corresponding to name [" + name + "] is not assignable to requested Java type [" + type.getName() + "]" ); } return parameter; } catch ( HibernateException e ) { throw getExceptionConverter().convert( e ); } }
@Override public QueryImplementor<R> setParameter(int position, OffsetDateTime value, TemporalType temporalType) { final QueryParameterBinding<Object> binding = getQueryParameterBindings().getBinding( getParameterMetadata().getQueryParameter( position ) ); binding.setBindValue( value, temporalType ); return this; }
@Override public QueryParameter<?> getParameter(int position) { getProducer().checkOpen( false ); try { if ( getParameterMetadata().getPositionalParameterCount() == 0 ) { try { return getParameterMetadata().getQueryParameter( Integer.toString( position ) ); } catch (HibernateException e) { throw new QueryParameterException( "could not locate parameter at position [" + position + "]" ); } } // fallback to ordinal lookup return getParameterMetadata().getQueryParameter( position ); } catch (HibernateException e) { throw getExceptionConverter().convert( e ); } }
@Override public QueryParameter<?> getParameter(String name) { getProducer().checkOpen( false ); try { return getParameterMetadata().getQueryParameter( name ); } catch ( HibernateException e ) { throw getExceptionConverter().convert( e ); } }
protected Type determineType(String namedParam, Class retType) { Type type = getQueryParameterBindings().getBinding( namedParam ).getBindType(); if ( type == null ) { type = getParameterMetadata().getQueryParameter( namedParam ).getHibernateType(); } if ( type == null ) { type = getProducer().getFactory().resolveParameterBindType( retType ); } return type; }
@Override @SuppressWarnings("unchecked") public QueryImplementor setParameter(int position, Object value) { getProducer().checkOpen(); if ( value instanceof TypedParameterValue ) { final TypedParameterValue typedParameterValue = (TypedParameterValue) value; setParameter( position, typedParameterValue.getValue(), typedParameterValue.getType() ); } else if ( value instanceof Collection && !isRegisteredAsBasicType( value.getClass() ) ) { setParameterList( getParameterMetadata().getQueryParameter( position ), (Collection) value ); } else { getQueryParameterBindings().getBinding( position ).setBindValue( value ); } return this; }