private ParameterMetadataImpl buildParameterMetadata(ParameterTranslations parameterTranslations, String hql) { final Map<Integer,OrdinalParameterDescriptor> ordinalParamDescriptors; if ( parameterTranslations.getPositionalParameterInformationMap().isEmpty() ) { ordinalParamDescriptors = Collections.emptyMap(); final Map<Integer,OrdinalParameterDescriptor> temp = new HashMap<>(); for ( Map.Entry<Integer, PositionalParameterInformation> entry : parameterTranslations.getPositionalParameterInformationMap().entrySet() ) { final int position = entry.getKey(); temp.put( if ( parameterTranslations.getNamedParameterInformationMap().isEmpty() ) { namedParamDescriptorMap = Collections.emptyMap(); final Map<String, NamedParameterDescriptor> tmp = new HashMap<>(); for ( Map.Entry<String, NamedParameterInformation> namedEntry : parameterTranslations.getNamedParameterInformationMap().entrySet() ) { final String name = namedEntry.getKey(); tmp.put( new NamedParameterDescriptor( name, parameterTranslations.getNamedParameterInformation( name ).getExpectedType(), namedEntry.getValue().getSourceLocations()
/** * Returns the locations of all occurrences of the named parameter. */ @Override public int[] getNamedParameterLocs(String name) throws QueryException { ParameterInformation info = queryTranslator.getParameterTranslations().getNamedParameterInformation( name ); if ( info == null ) { try { info = queryTranslator.getParameterTranslations().getPositionalParameterInformation( Integer.parseInt( name ) ); } catch (Exception ignore) { } } if ( info == null ) { throw new QueryException( "Unrecognized parameter label : " + name ); } return info.getSourceLocations(); }
LOG.tracev( "HQL param location recognition took {0} mills ({1})", ( end - start ), hql ); int ordinalParamCount = parameterTranslations.getOrdinalParameterCount(); int[] locations = ArrayHelper.toIntArray( recognizer.getOrdinalParameterLocationList() ); if ( parameterTranslations.supportsOrdinalParameterMetadata() && locations.length != ordinalParamCount ) { throw new HibernateException( "ordinal parameter mismatch" ); ordinalParamDescriptors[ i - 1 ] = new OrdinalParameterDescriptor( i, parameterTranslations.supportsOrdinalParameterMetadata() ? parameterTranslations.getOrdinalParameterExpectedType( i ) : null, locations[ i - 1 ] new NamedParameterDescriptor( name, parameterTranslations.getNamedParameterExpectedType( name ), description.buildPositionsArray(), description.isJpaStyle()
/** * Returns the locations of all occurrences of the named parameter. */ public int[] getNamedParameterLocs(String name) throws QueryException { return queryTranslator.getParameterTranslations().getNamedParameterSqlLocations( name ); }
/** * Creates an array of statements that generates code for the array of named parameters in the query. */ private Statement[] generateQueryParamArray() { if (logger.isDebugEnabled()) { logger.debug("Named parameters: " + query.getParameterTranslations().getNamedParameterInformationMap().keySet()); } @SuppressWarnings("unchecked") List<ParameterSpecification> parameterSpecifications = query.getSqlAST().getWalker().getParameterSpecs(); Statement generatedParamList[] = new Statement[parameterSpecifications.size()]; for (int i = 0; i < parameterSpecifications.size(); i++) { NamedParameterSpecification ps = (NamedParameterSpecification) parameterSpecifications.get(i); // invoking ErraiParameter(String name, Integer position, Class<T> type) Class<?> paramType; if (ps.getExpectedType() != null) { paramType = ps.getExpectedType().getReturnedClass(); } else { paramType = Object.class; } generatedParamList[i] = Stmt.newObject(ErraiParameter.class).withParameters( ps.getName(), Integer.valueOf(i), paramType); } return generatedParamList; }
LOG.tracev( "HQL param location recognition took {0} mills ({1})", ( end - start ), hql ); int ordinalParamCount = parameterTranslations.getOrdinalParameterCount(); int[] locations = ArrayHelper.toIntArray( recognizer.getOrdinalParameterLocationList() ); if ( parameterTranslations.supportsOrdinalParameterMetadata() && locations.length != ordinalParamCount ) { throw new HibernateException( "ordinal parameter mismatch" ); ordinalParamDescriptors[ i - 1 ] = new OrdinalParameterDescriptor( i, parameterTranslations.supportsOrdinalParameterMetadata() ? parameterTranslations.getOrdinalParameterExpectedType( i ) : null, locations[ i - 1 ] new NamedParameterDescriptor( name, parameterTranslations.getNamedParameterExpectedType( name ), description.buildPositionsArray(), description.isJpaStyle()
/** * Returns the locations of all occurrences of the named parameter. */ public int[] getNamedParameterLocs(String name) throws QueryException { return queryTranslator.getParameterTranslations().getNamedParameterSqlLocations( name ); }