Skip to content

Commit 16e99f2

Browse files
committed
Accept support for generated keys column name array on HSQLDB/Derby
Closes gh-34790
1 parent 642e554 commit 16e99f2

File tree

1 file changed

+2
-39
lines changed

1 file changed

+2
-39
lines changed

spring-jdbc/src/main/java/org/springframework/jdbc/core/metadata/GenericTableMetaDataProvider.java

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import java.sql.SQLException;
2222
import java.sql.Types;
2323
import java.util.ArrayList;
24-
import java.util.Arrays;
2524
import java.util.HashMap;
2625
import java.util.List;
2726
import java.util.Locale;
@@ -48,11 +47,6 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
4847
/** Logger available to subclasses. */
4948
protected static final Log logger = LogFactory.getLog(TableMetaDataProvider.class);
5049

51-
/** Database products we know not supporting the use of a String[] for generated keys. */
52-
private static final List<String> productsNotSupportingGeneratedKeysColumnNameArray =
53-
Arrays.asList("Apache Derby", "HSQL Database Engine");
54-
55-
5650
/** The name of the user currently connected. */
5751
@Nullable
5852
private final String userName;
@@ -95,45 +89,14 @@ protected GenericTableMetaDataProvider(DatabaseMetaData databaseMetaData) throws
9589
@Override
9690
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
9791
try {
98-
if (databaseMetaData.supportsGetGeneratedKeys()) {
99-
logger.debug("GetGeneratedKeys is supported");
100-
setGetGeneratedKeysSupported(true);
101-
}
102-
else {
103-
logger.debug("GetGeneratedKeys is not supported");
104-
setGetGeneratedKeysSupported(false);
105-
}
92+
setGetGeneratedKeysSupported(databaseMetaData.supportsGetGeneratedKeys());
93+
setGeneratedKeysColumnNameArraySupported(isGetGeneratedKeysSupported());
10694
}
10795
catch (SQLException ex) {
10896
if (logger.isWarnEnabled()) {
10997
logger.warn("Error retrieving 'DatabaseMetaData.supportsGetGeneratedKeys': " + ex.getMessage());
11098
}
11199
}
112-
try {
113-
String databaseProductName = databaseMetaData.getDatabaseProductName();
114-
if (productsNotSupportingGeneratedKeysColumnNameArray.contains(databaseProductName)) {
115-
if (logger.isDebugEnabled()) {
116-
logger.debug("GeneratedKeysColumnNameArray is not supported for " + databaseProductName);
117-
}
118-
setGeneratedKeysColumnNameArraySupported(false);
119-
}
120-
else {
121-
if (isGetGeneratedKeysSupported()) {
122-
if (logger.isDebugEnabled()) {
123-
logger.debug("GeneratedKeysColumnNameArray is supported for " + databaseProductName);
124-
}
125-
setGeneratedKeysColumnNameArraySupported(true);
126-
}
127-
else {
128-
setGeneratedKeysColumnNameArraySupported(false);
129-
}
130-
}
131-
}
132-
catch (SQLException ex) {
133-
if (logger.isWarnEnabled()) {
134-
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductName': " + ex.getMessage());
135-
}
136-
}
137100

138101
try {
139102
this.databaseVersion = databaseMetaData.getDatabaseProductVersion();

0 commit comments

Comments
 (0)