Skip to content

Commit 171f1ee

Browse files
author
Thomas Risberg
committed
added additional parameter name matching using lowercase with Locale.ENGLISH (SPR-7658)
1 parent be21358 commit 171f1ee

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

org.springframework.jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.HashSet;
2323
import java.util.LinkedHashMap;
2424
import java.util.List;
25+
import java.util.Locale;
2526
import java.util.Map;
2627
import java.util.Set;
2728
import javax.sql.DataSource;
@@ -456,18 +457,24 @@ public Map<String, Object> matchInParameterValuesWithCallParameters(SqlParameter
456457
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName));
457458
}
458459
else {
459-
String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName);
460-
if (parameterSource.hasValue(propertyName)) {
461-
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName));
460+
String englishLowerCaseName = parameterName.toLowerCase(Locale.ENGLISH);
461+
if (parameterSource.hasValue(englishLowerCaseName)) {
462+
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, englishLowerCaseName));
462463
}
463464
else {
464-
if (caseInsensitiveParameterNames.containsKey(lowerCaseName)) {
465-
String sourceName = (String) caseInsensitiveParameterNames.get(lowerCaseName);
466-
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
465+
String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName);
466+
if (parameterSource.hasValue(propertyName)) {
467+
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName));
467468
}
468469
else {
469-
logger.warn("Unable to locate the corresponding parameter value for '" + parameterName +
470-
"' within the parameter values provided: " + caseInsensitiveParameterNames.values());
470+
if (caseInsensitiveParameterNames.containsKey(lowerCaseName)) {
471+
String sourceName = (String) caseInsensitiveParameterNames.get(lowerCaseName);
472+
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
473+
}
474+
else {
475+
logger.warn("Unable to locate the corresponding parameter value for '" + parameterName +
476+
"' within the parameter values provided: " + caseInsensitiveParameterNames.values());
477+
}
471478
}
472479
}
473480
}

0 commit comments

Comments
 (0)