Browse Source

added additional parameter name matching using lowercase with Locale.ENGLISH (SPR-7658)

3.0.x
Thomas Risberg 15 years ago
parent
commit
171f1ee097
  1. 7
      org.springframework.jdbc/src/main/java/org/springframework/jdbc/core/metadata/CallMetaDataContext.java

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

@ -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;
@ -455,6 +456,11 @@ public class CallMetaDataContext {
if (parameterSource.hasValue(lowerCaseName)) { if (parameterSource.hasValue(lowerCaseName)) {
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName));
} }
else {
String englishLowerCaseName = parameterName.toLowerCase(Locale.ENGLISH);
if (parameterSource.hasValue(englishLowerCaseName)) {
matchedParameters.put(parameterName, SqlParameterSourceUtils.getTypedValue(parameterSource, englishLowerCaseName));
}
else { else {
String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName); String propertyName = JdbcUtils.convertUnderscoreNameToPropertyName(parameterName);
if (parameterSource.hasValue(propertyName)) { if (parameterSource.hasValue(propertyName)) {
@ -475,6 +481,7 @@ public class CallMetaDataContext {
} }
} }
} }
}
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug("Matching " + caseInsensitiveParameterNames.values() + " with " + callParameterNames.values()); logger.debug("Matching " + caseInsensitiveParameterNames.values() + " with " + callParameterNames.values());

Loading…
Cancel
Save