@@ -80,15 +80,25 @@ public void validateColumnTypes(EntityHelperUtil.EntityMappingPackageInformation
80
80
configuredColumnType = EntityParameterTypesOverview .PARAMETER_TYPE_VARCHAR ;
81
81
}
82
82
83
+ // Oracle returns INTEGER for both BIGINT, Boolean and Double
84
+ if (databaseType .equals (AbstractEngineConfiguration .DATABASE_TYPE_ORACLE )
85
+ && columnTypeFromMetaData .equalsIgnoreCase (EntityParameterTypesOverview .PARAMETER_TYPE_INTEGER )) {
86
+
87
+ if (configuredColumnType .equalsIgnoreCase (EntityParameterTypesOverview .PARAMETER_TYPE_BIGINT )) {
88
+ columnTypeFromMetaData = EntityParameterTypesOverview .PARAMETER_TYPE_BIGINT ;
89
+ } else if (configuredColumnType .equalsIgnoreCase (EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN )) {
90
+ columnTypeFromMetaData = EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN ;
91
+ } else if (configuredColumnType .equalsIgnoreCase (EntityParameterTypesOverview .PARAMETER_TYPE_DOUBLE )) {
92
+ columnTypeFromMetaData = EntityParameterTypesOverview .PARAMETER_TYPE_DOUBLE ;
93
+ }
94
+ }
95
+
83
96
// Some databases report boolean for tinyint columns
84
97
if (columnTypeFromMetaData .equalsIgnoreCase (EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN )) {
85
98
assertThat (configuredColumnType )
86
99
.withFailMessage ("Column type does not match. Expecting <" + configuredColumnType
87
100
+ "> for column " + columnName + " of table " + tableName + ", but JDBC metadata returned <" + columnTypeFromMetaData + ">" )
88
- .satisfiesAnyOf (
89
- param -> assertThat (param ).isEqualTo (EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN ),
90
- param -> assertThat (param ).isEqualTo (EntityParameterTypesOverview .PARAMETER_TYPE_INTEGER )
91
- );
101
+ .isIn (EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN , EntityParameterTypesOverview .PARAMETER_TYPE_INTEGER );
92
102
93
103
} else {
94
104
@@ -235,6 +245,7 @@ protected Map<String, String> internalGetColumnMetaData(String tableName) {
235
245
columnType = EntityParameterTypesOverview .PARAMETER_TYPE_TIMESTAMP ;
236
246
237
247
} else if (columnType .equalsIgnoreCase ("int" )
248
+ || columnType .equalsIgnoreCase ("NUMBER" ) // oracle
238
249
|| columnType .equalsIgnoreCase ("int2" ) // postgres
239
250
|| columnType .equalsIgnoreCase ("int4" )) { // postgres
240
251
columnType = EntityParameterTypesOverview .PARAMETER_TYPE_INTEGER ;
@@ -248,7 +259,6 @@ protected Map<String, String> internalGetColumnMetaData(String tableName) {
248
259
} else if (columnType .equalsIgnoreCase ("bit" )
249
260
|| columnType .equalsIgnoreCase ("SMALLINT" )
250
261
|| columnType .equalsIgnoreCase ("TINYINT" ) // mariadb
251
- || columnType .equalsIgnoreCase ("NUMBER" ) // oracle
252
262
|| columnType .equalsIgnoreCase ("bool" )) { // postgres
253
263
columnType = EntityParameterTypesOverview .PARAMETER_TYPE_BOOLEAN ;
254
264
0 commit comments