#2158 - Oracle - automatic platform selection doesn't select older Oracle11Platform via jdbc metadata major version

This commit is contained in:
Robin Bygrave
2021-02-11 17:20:28 +13:00
parent 2672dff512
commit bc33e05906
@@ -157,7 +157,7 @@ public class DatabasePlatformFactory {
final int minorVersion = metaData.getDatabaseMinorVersion();
if (dbProductName.contains("oracle")) {
return new OraclePlatform();
return oracleVersion(majorVersion);
} else if (dbProductName.contains("microsoft")) {
throw new IllegalArgumentException("For SqlServer please explicitly choose either sqlserver16 or sqlserver17 as the platform via DatabaseConfig.setDatabasePlatformName. Refer to issue #1340 for more details");
} else if (dbProductName.contains("h2")) {
@@ -188,6 +188,10 @@ public class DatabasePlatformFactory {
return new DatabasePlatform();
}
private DatabasePlatform oracleVersion(int majorVersion) {
return majorVersion < 12 ? new Oracle11Platform() : new OraclePlatform();
}
private DatabasePlatform mysqlVersion(int majorVersion, int minorVersion) {
if (majorVersion <= 5 && minorVersion <= 5) {
return new MySql55Platform();