/** * Update both the query and the parameter indexes to include the array parameters. */ static String updateQueryAndParametersIndexes(String parsedQuery, Map<String, List<Integer>> parameterNamesToIndexes, Map<String, Query.ParameterSetter> parameters, boolean allowArrayParameters) { List<ArrayParameter> arrayParametersSortedAsc = arrayParametersSortedAsc(parameterNamesToIndexes, parameters, allowArrayParameters); if(arrayParametersSortedAsc.isEmpty()) { return parsedQuery; } updateParameterNamesToIndexes(parameterNamesToIndexes, arrayParametersSortedAsc); return updateQueryWithArrayParameters(parsedQuery, arrayParametersSortedAsc); }
/** * Update the indexes of each query parameter */ static Map<String, List<Integer>> updateParameterNamesToIndexes(Map<String, List<Integer>> parametersNameToIndex, List<ArrayParameter> arrayParametersSortedAsc) { for(Map.Entry<String, List<Integer>> parameterNameToIndexes : parametersNameToIndex.entrySet()) { List<Integer> newParameterIndex = new ArrayList<>(parameterNameToIndexes.getValue().size()); for(Integer parameterIndex : parameterNameToIndexes.getValue()) { newParameterIndex.add(computeNewIndex(parameterIndex, arrayParametersSortedAsc)); } parameterNameToIndexes.setValue(newParameterIndex); } return parametersNameToIndex; }
private PreparedStatement buildPreparedStatement(boolean allowArrayParameters) { parsedQuery = ArrayParameters.updateQueryAndParametersIndexes(parsedQuery, paramNameToIdxMap, parameters, allowArrayParameters);
private PreparedStatement buildPreparedStatement(boolean allowArrayParameters) { parsedQuery = ArrayParameters.updateQueryAndParametersIndexes(parsedQuery, paramNameToIdxMap, parameters, allowArrayParameters);
/** * Update both the query and the parameter indexes to include the array parameters. */ static String updateQueryAndParametersIndexes(String parsedQuery, Map<String, List<Integer>> parameterNamesToIndexes, Map<String, Query.ParameterSetter> parameters, boolean allowArrayParameters) { List<ArrayParameter> arrayParametersSortedAsc = arrayParametersSortedAsc(parameterNamesToIndexes, parameters, allowArrayParameters); if(arrayParametersSortedAsc.isEmpty()) { return parsedQuery; } updateParameterNamesToIndexes(parameterNamesToIndexes, arrayParametersSortedAsc); return updateQueryWithArrayParameters(parsedQuery, arrayParametersSortedAsc); }
/** * Update the indexes of each query parameter */ static Map<String, List<Integer>> updateParameterNamesToIndexes(Map<String, List<Integer>> parametersNameToIndex, List<ArrayParameter> arrayParametersSortedAsc) { for(Map.Entry<String, List<Integer>> parameterNameToIndexes : parametersNameToIndex.entrySet()) { List<Integer> newParameterIndex = new ArrayList<>(parameterNameToIndexes.getValue().size()); for(Integer parameterIndex : parameterNameToIndexes.getValue()) { newParameterIndex.add(computeNewIndex(parameterIndex, arrayParametersSortedAsc)); } parameterNameToIndexes.setValue(newParameterIndex); } return parametersNameToIndex; }