public Type getNamedParameterExpectedType(String name) { return getNamedParameterDescriptor( name ).getExpectedType(); }
/** * Does this query contain named parameters? * * @return True if the query was found to contain named parameters; false * otherwise; */ public boolean hasNamedParameters() { return parameterMetadata.getNamedParameterNames().size() > 0; }
public Type getOrdinalParameterExpectedType(int position) { return getOrdinalParameterDescriptor( position ).getExpectedType(); }
for ( String name : (Set<String>) queryImpl.getParameterMetadata().getNamedParameterNames() ) { final NamedParameterDescriptor descriptor = queryImpl.getParameterMetadata().getNamedParameterDescriptor( name ); Class javaType = namedParameterTypeRedefinition.get( name ); if ( javaType != null && mightNeedRedefinition( javaType ) ) { for ( int i = 0, max = queryImpl.getParameterMetadata().getOrdinalParameterCount(); i < max; i++ ) { final OrdinalParameterDescriptor descriptor = queryImpl.getParameterMetadata().getOrdinalParameterDescriptor( i+1 ); ParameterImpl parameter = new ParameterImpl( i + 1,
if ( parameterMetadata.getNamedParameterNames().size() != namedParameters.size() + namedParameterLists.size() ) { Set missingParams = new HashSet( parameterMetadata.getNamedParameterNames() ); missingParams.removeAll( namedParameterLists.keySet() ); missingParams.removeAll( namedParameters.keySet() ); if ( parameterMetadata.getOrdinalParameterCount() != positionalValueSpan ) { if ( reserveFirstParameter && parameterMetadata.getOrdinalParameterCount() - 1 != positionalValueSpan ) { throw new QueryException( "Expected positional parameter count: " + (parameterMetadata.getOrdinalParameterCount()-1) + ", actual parameters: " + values, throw new QueryException( "Expected positional parameter count: " + parameterMetadata.getOrdinalParameterCount() + ", actual parameters: " + values,
@SuppressWarnings({ "UnnecessaryUnboxing" }) private ParameterMetadata buildNativeSQLParameterMetadata(String sqlString) { ParamLocationRecognizer recognizer = ParamLocationRecognizer.parseLocations( sqlString ); OrdinalParameterDescriptor[] ordinalDescriptors = new OrdinalParameterDescriptor[ recognizer.getOrdinalParameterLocationList().size() ]; for ( int i = 0; i < recognizer.getOrdinalParameterLocationList().size(); i++ ) { final Integer position = ( Integer ) recognizer.getOrdinalParameterLocationList().get( i ); ordinalDescriptors[i] = new OrdinalParameterDescriptor( i, null, position.intValue() ); } Iterator itr = recognizer.getNamedParameterDescriptionMap().entrySet().iterator(); Map<String,NamedParameterDescriptor> namedParamDescriptorMap = new HashMap<String,NamedParameterDescriptor>(); while( itr.hasNext() ) { final Map.Entry entry = ( Map.Entry ) itr.next(); final String name = ( String ) entry.getKey(); final ParamLocationRecognizer.NamedParameterDescription description = ( ParamLocationRecognizer.NamedParameterDescription ) entry.getValue(); namedParamDescriptorMap.put( name , new NamedParameterDescriptor( name, null, description.buildPositionsArray(), description.isJpaStyle() ) ); } return new ParameterMetadata( ordinalDescriptors, namedParamDescriptorMap ); }
protected Type determineType(String paramName, Object paramValue, Type defaultType) { Type type = parameterMetadata.getNamedParameterExpectedType( paramName ); if ( type == null ) { type = defaultType; } return type; }
public Query setParameter(int position, Object val, Type type) { if ( parameterMetadata.getOrdinalParameterCount() == 0 ) { throw new IllegalArgumentException("No positional parameters in query: " + getQueryString() ); } if ( position < 0 || position > parameterMetadata.getOrdinalParameterCount() - 1 ) { throw new IllegalArgumentException("Positional parameter does not exist: " + position + " in query: " + getQueryString() ); } int size = values.size(); if ( position < size ) { values.set( position, val ); types.set( position, type ); } else { // prepend value and type list with null for any positions before the wanted position. for ( int i = 0; i < position - size; i++ ) { values.add( UNSET_PARAMETER ); types.add( UNSET_TYPE ); } values.add( val ); types.add( type ); } return this; }
protected Type determineType(int paramPosition, Object paramValue, Type defaultType) { Type type = parameterMetadata.getOrdinalParameterExpectedType( paramPosition + 1 ); if ( type == null ) { type = defaultType; } return type; }
if ( parameterMetadata.getNamedParameterNames().size() != namedParameters.size() + namedParameterLists.size() ) { Set missingParams = new HashSet( parameterMetadata.getNamedParameterNames() ); missingParams.removeAll( namedParameterLists.keySet() ); missingParams.removeAll( namedParameters.keySet() ); if ( parameterMetadata.getOrdinalParameterCount() != positionalValueSpan ) { if ( reserveFirstParameter && parameterMetadata.getOrdinalParameterCount() - 1 != positionalValueSpan ) { throw new QueryException( "Expected positional parameter count: " + (parameterMetadata.getOrdinalParameterCount()-1) + ", actual parameters: " + values, throw new QueryException( "Expected positional parameter count: " + parameterMetadata.getOrdinalParameterCount() + ", actual parameters: " + values,
@SuppressWarnings({ "UnnecessaryUnboxing" }) private ParameterMetadata buildNativeSQLParameterMetadata(String sqlString) { ParamLocationRecognizer recognizer = ParamLocationRecognizer.parseLocations( sqlString ); OrdinalParameterDescriptor[] ordinalDescriptors = new OrdinalParameterDescriptor[ recognizer.getOrdinalParameterLocationList().size() ]; for ( int i = 0; i < recognizer.getOrdinalParameterLocationList().size(); i++ ) { final Integer position = ( Integer ) recognizer.getOrdinalParameterLocationList().get( i ); ordinalDescriptors[i] = new OrdinalParameterDescriptor( i, null, position.intValue() ); } Iterator itr = recognizer.getNamedParameterDescriptionMap().entrySet().iterator(); Map<String,NamedParameterDescriptor> namedParamDescriptorMap = new HashMap<String,NamedParameterDescriptor>(); while( itr.hasNext() ) { final Map.Entry entry = ( Map.Entry ) itr.next(); final String name = ( String ) entry.getKey(); final ParamLocationRecognizer.NamedParameterDescription description = ( ParamLocationRecognizer.NamedParameterDescription ) entry.getValue(); namedParamDescriptorMap.put( name , new NamedParameterDescriptor( name, null, description.buildPositionsArray(), description.isJpaStyle() ) ); } return new ParameterMetadata( ordinalDescriptors, namedParamDescriptorMap ); }
protected Type determineType(String paramName, Object paramValue, Type defaultType) { Type type = parameterMetadata.getNamedParameterExpectedType( paramName ); if ( type == null ) { type = defaultType; } return type; }
public Query setParameter(int position, Object val, Type type) { if ( parameterMetadata.getOrdinalParameterCount() == 0 ) { throw new IllegalArgumentException("No positional parameters in query: " + getQueryString() ); } if ( position < 0 || position > parameterMetadata.getOrdinalParameterCount() - 1 ) { throw new IllegalArgumentException("Positional parameter does not exist: " + position + " in query: " + getQueryString() ); } int size = values.size(); if ( position < size ) { values.set( position, val ); types.set( position, type ); } else { // prepend value and type list with null for any positions before the wanted position. for ( int i = 0; i < position - size; i++ ) { values.add( UNSET_PARAMETER ); types.add( UNSET_TYPE ); } values.add( val ); types.add( type ); } return this; }
protected Type determineType(int paramPosition, Object paramValue, Type defaultType) { Type type = parameterMetadata.getOrdinalParameterExpectedType( paramPosition + 1 ); if ( type == null ) { type = defaultType; } return type; }
public int[] getNamedParameterSourceLocations(String name) { return getNamedParameterDescriptor( name ).getSourceLocations(); }
/** * Does this query contain named parameters? * * @return True if the query was found to contain named parameters; false * otherwise; */ public boolean hasNamedParameters() { return parameterMetadata.getNamedParameterNames().size() > 0; }
return new ParameterMetadata( ordinalParamDescriptors, namedParamDescriptorMap );
public int getOrdinalParameterSourceLocation(int position) { return getOrdinalParameterDescriptor( position ).getSourceLocation(); }
protected Type determineType(String paramName, Class clazz) throws HibernateException { Type type = parameterMetadata.getNamedParameterExpectedType( paramName ); if ( type == null ) { type = guessType( clazz ); } return type; }
protected Type determineType(int paramPosition, Object paramValue) throws HibernateException { Type type = parameterMetadata.getOrdinalParameterExpectedType( paramPosition + 1 ); if ( type == null ) { type = guessType( paramValue ); } return type; }