added additional parameter name matching using lowercase with Locale.ENGLISH (SPR-7658)
This commit is contained in:
parent
be21358db7
commit
171f1ee097
|
|
@ -22,6 +22,7 @@ import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
@ -456,18 +457,24 @@ public class CallMetaDataContext {
|
||||||
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName));
|
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName);
|
String englishLowerCaseName = parameterName.toLowerCase(Locale.ENGLISH);
|
||||||
if (parameterSource.hasValue(propertyName)) {
|
if (parameterSource.hasValue(englishLowerCaseName)) {
|
||||||
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName));
|
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, englishLowerCaseName));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (caseInsensitiveParameterNames.containsKey(lowerCaseName)) {
|
String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName);
|
||||||
String sourceName = (String) caseInsensitiveParameterNames.get(lowerCaseName);
|
if (parameterSource.hasValue(propertyName)) {
|
||||||
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
|
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, propertyName));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
logger.warn("Unable to locate the corresponding parameter value for '" + parameterName +
|
if (caseInsensitiveParameterNames.containsKey(lowerCaseName)) {
|
||||||
"' within the parameter values provided: " + caseInsensitiveParameterNames.values());
|
String sourceName = (String) caseInsensitiveParameterNames.get(lowerCaseName);
|
||||||
|
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, sourceName));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
logger.warn("Unable to locate the corresponding parameter value for '" + parameterName +
|
||||||
|
"' within the parameter values provided: " + caseInsensitiveParameterNames.values());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue