77import java .sql .Connection ;
88import java .sql .DatabaseMetaData ;
99import java .sql .ResultSet ;
10- import java .util .ArrayList ;
11- import java .util .Comparator ;
12- import java .util .List ;
13- import java .util .Map ;
10+ import java .util .*;
1411import java .util .stream .Collectors ;
1512
1613public class SchemaUtils {
@@ -56,14 +53,14 @@ public static <TEntity> void validateColumnMapping(Connection connection, Abstra
5653 // Try to obtain the Schema:
5754 SchemaMetaData schemaMetaData = internalGetSchemaMetaData (connection , mapping );
5855
59- // We cannot validate, perhaps no permissions to read the Information Schema, we shouldn't
60- // stop at all , because this might be valid. Nevertheless it may lead to subtle errors and
56+ // We cannot validate, perhaps no permissions to read the Meta Data? We shouldn't throw an
57+ // Exception , because this might be valid. Nevertheless it may lead to subtle errors and
6158 // we should probably log it in the future:
6259 if (schemaMetaData == null || schemaMetaData .getColumns () == null || schemaMetaData .getColumns ().isEmpty ()) {
6360 return ;
6461 }
6562
66- // We cannot continue, if not all columns have been populated:
63+ // We have read the DatabaseMetaData and cannot continue, if not all columns have been populated:
6764 if (mapping .getColumns ().size () != schemaMetaData .getColumns ().size ()) {
6865 throw new RuntimeException ("Destination Table has '" + schemaMetaData .getColumns ().size () + "' columns, the Source Mapping has '" + mapping .getColumns ().size () +"' columns." );
6966 }
@@ -84,13 +81,13 @@ public static <TEntity> List<IColumnDefinition<TEntity>> getSortedColumnMappings
8481 // Build a Lookup Table:
8582 Map <String , IColumnDefinition <TEntity >> columnDefinitionLookup = mapping .getColumns ()
8683 .stream ()
87- .collect (Collectors .toMap (x -> x .getColumnMetaData ().getName (), x -> x ));
84+ .collect (Collectors .toMap (x -> x .getColumnMetaData ().getName (). toUpperCase () , x -> x ));
8885
8986 // Now Sort the Column Definitions:
9087 List <IColumnDefinition <TEntity >> sortedColumns = new ArrayList <>();
9188
9289 for (SchemaMetaData .ColumnInformation columnMetaData : schemaMetaData .getColumns ()) {
93- IColumnDefinition <TEntity > columnDefinition = columnDefinitionLookup .get (columnMetaData .getColumnName ());
90+ IColumnDefinition <TEntity > columnDefinition = columnDefinitionLookup .get (columnMetaData .getColumnName (). toUpperCase () );
9491
9592 sortedColumns .add (columnDefinition );
9693 }
0 commit comments