|
|
|
@ -20,6 +20,7 @@ import java.util.ArrayList; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.LinkedHashSet; |
|
|
|
import java.util.LinkedHashSet; |
|
|
|
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; |
|
|
|
|
|
|
|
|
|
|
|
@ -217,11 +218,11 @@ public class TableMetaDataContext { |
|
|
|
} |
|
|
|
} |
|
|
|
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length); |
|
|
|
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length); |
|
|
|
for (String key : generatedKeyNames) { |
|
|
|
for (String key : generatedKeyNames) { |
|
|
|
keys.add(key.toUpperCase()); |
|
|
|
keys.add(key.toUpperCase(Locale.ROOT)); |
|
|
|
} |
|
|
|
} |
|
|
|
List<String> columns = new ArrayList<>(); |
|
|
|
List<String> columns = new ArrayList<>(); |
|
|
|
for (TableParameterMetaData meta : obtainMetaDataProvider().getTableParameterMetaData()) { |
|
|
|
for (TableParameterMetaData meta : obtainMetaDataProvider().getTableParameterMetaData()) { |
|
|
|
if (!keys.contains(meta.getParameterName().toUpperCase())) { |
|
|
|
if (!keys.contains(meta.getParameterName().toUpperCase(Locale.ROOT))) { |
|
|
|
columns.add(meta.getParameterName()); |
|
|
|
columns.add(meta.getParameterName()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
@ -243,7 +244,7 @@ public class TableMetaDataContext { |
|
|
|
values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, column)); |
|
|
|
values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, column)); |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
String lowerCaseName = column.toLowerCase(); |
|
|
|
String lowerCaseName = column.toLowerCase(Locale.ROOT); |
|
|
|
if (parameterSource.hasValue(lowerCaseName)) { |
|
|
|
if (parameterSource.hasValue(lowerCaseName)) { |
|
|
|
values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); |
|
|
|
values.add(SqlParameterSourceUtils.getTypedValue(parameterSource, lowerCaseName)); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -276,7 +277,7 @@ public class TableMetaDataContext { |
|
|
|
for (String column : this.tableColumns) { |
|
|
|
for (String column : this.tableColumns) { |
|
|
|
Object value = inParameters.get(column); |
|
|
|
Object value = inParameters.get(column); |
|
|
|
if (value == null) { |
|
|
|
if (value == null) { |
|
|
|
value = inParameters.get(column.toLowerCase()); |
|
|
|
value = inParameters.get(column.toLowerCase(Locale.ROOT)); |
|
|
|
if (value == null) { |
|
|
|
if (value == null) { |
|
|
|
for (Map.Entry<String, ?> entry : inParameters.entrySet()) { |
|
|
|
for (Map.Entry<String, ?> entry : inParameters.entrySet()) { |
|
|
|
if (column.equalsIgnoreCase(entry.getKey())) { |
|
|
|
if (column.equalsIgnoreCase(entry.getKey())) { |
|
|
|
@ -298,7 +299,7 @@ public class TableMetaDataContext { |
|
|
|
public String createInsertString(String... generatedKeyNames) { |
|
|
|
public String createInsertString(String... generatedKeyNames) { |
|
|
|
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length); |
|
|
|
Set<String> keys = new LinkedHashSet<>(generatedKeyNames.length); |
|
|
|
for (String key : generatedKeyNames) { |
|
|
|
for (String key : generatedKeyNames) { |
|
|
|
keys.add(key.toUpperCase()); |
|
|
|
keys.add(key.toUpperCase(Locale.ROOT)); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
String identifierQuoteString = (isQuoteIdentifiers() ? |
|
|
|
String identifierQuoteString = (isQuoteIdentifiers() ? |
|
|
|
@ -326,7 +327,7 @@ public class TableMetaDataContext { |
|
|
|
insertStatement.append(" ("); |
|
|
|
insertStatement.append(" ("); |
|
|
|
int columnCount = 0; |
|
|
|
int columnCount = 0; |
|
|
|
for (String columnName : getTableColumns()) { |
|
|
|
for (String columnName : getTableColumns()) { |
|
|
|
if (!keys.contains(columnName.toUpperCase())) { |
|
|
|
if (!keys.contains(columnName.toUpperCase(Locale.ROOT))) { |
|
|
|
columnCount++; |
|
|
|
columnCount++; |
|
|
|
if (columnCount > 1) { |
|
|
|
if (columnCount > 1) { |
|
|
|
insertStatement.append(", "); |
|
|
|
insertStatement.append(", "); |
|
|
|
@ -366,7 +367,7 @@ public class TableMetaDataContext { |
|
|
|
List<TableParameterMetaData> parameters = obtainMetaDataProvider().getTableParameterMetaData(); |
|
|
|
List<TableParameterMetaData> parameters = obtainMetaDataProvider().getTableParameterMetaData(); |
|
|
|
Map<String, TableParameterMetaData> parameterMap = CollectionUtils.newLinkedHashMap(parameters.size()); |
|
|
|
Map<String, TableParameterMetaData> parameterMap = CollectionUtils.newLinkedHashMap(parameters.size()); |
|
|
|
for (TableParameterMetaData tpmd : parameters) { |
|
|
|
for (TableParameterMetaData tpmd : parameters) { |
|
|
|
parameterMap.put(tpmd.getParameterName().toUpperCase(), tpmd); |
|
|
|
parameterMap.put(tpmd.getParameterName().toUpperCase(Locale.ROOT), tpmd); |
|
|
|
} |
|
|
|
} |
|
|
|
int typeIndx = 0; |
|
|
|
int typeIndx = 0; |
|
|
|
for (String column : getTableColumns()) { |
|
|
|
for (String column : getTableColumns()) { |
|
|
|
@ -374,7 +375,7 @@ public class TableMetaDataContext { |
|
|
|
types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN; |
|
|
|
types[typeIndx] = SqlTypeValue.TYPE_UNKNOWN; |
|
|
|
} |
|
|
|
} |
|
|
|
else { |
|
|
|
else { |
|
|
|
TableParameterMetaData tpmd = parameterMap.get(column.toUpperCase()); |
|
|
|
TableParameterMetaData tpmd = parameterMap.get(column.toUpperCase(Locale.ROOT)); |
|
|
|
if (tpmd != null) { |
|
|
|
if (tpmd != null) { |
|
|
|
types[typeIndx] = tpmd.getSqlType(); |
|
|
|
types[typeIndx] = tpmd.getSqlType(); |
|
|
|
} |
|
|
|
} |
|
|
|
|