mirror of
https://github.com/spring-projects/spring-framework.git
synced 2026-10-02 04:09:01 +00:00
Accept support for generated keys column name array on HSQLDB/Derby
Closes gh-34790
This commit is contained in:
+2
-39
@@ -21,7 +21,6 @@ import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Types;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -48,11 +47,6 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
||||
/** Logger available to subclasses. */
|
||||
protected static final Log logger = LogFactory.getLog(TableMetaDataProvider.class);
|
||||
|
||||
/** Database products we know not supporting the use of a String[] for generated keys. */
|
||||
private static final List<String> productsNotSupportingGeneratedKeysColumnNameArray =
|
||||
Arrays.asList("Apache Derby", "HSQL Database Engine");
|
||||
|
||||
|
||||
/** The name of the user currently connected. */
|
||||
@Nullable
|
||||
private final String userName;
|
||||
@@ -95,45 +89,14 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider {
|
||||
@Override
|
||||
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException {
|
||||
try {
|
||||
if (databaseMetaData.supportsGetGeneratedKeys()) {
|
||||
logger.debug("GetGeneratedKeys is supported");
|
||||
setGetGeneratedKeysSupported(true);
|
||||
}
|
||||
else {
|
||||
logger.debug("GetGeneratedKeys is not supported");
|
||||
setGetGeneratedKeysSupported(false);
|
||||
}
|
||||
setGetGeneratedKeysSupported(databaseMetaData.supportsGetGeneratedKeys());
|
||||
setGeneratedKeysColumnNameArraySupported(isGetGeneratedKeysSupported());
|
||||
}
|
||||
catch (SQLException ex) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("Error retrieving 'DatabaseMetaData.supportsGetGeneratedKeys': " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
try {
|
||||
String databaseProductName = databaseMetaData.getDatabaseProductName();
|
||||
if (productsNotSupportingGeneratedKeysColumnNameArray.contains(databaseProductName)) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("GeneratedKeysColumnNameArray is not supported for " + databaseProductName);
|
||||
}
|
||||
setGeneratedKeysColumnNameArraySupported(false);
|
||||
}
|
||||
else {
|
||||
if (isGetGeneratedKeysSupported()) {
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("GeneratedKeysColumnNameArray is supported for " + databaseProductName);
|
||||
}
|
||||
setGeneratedKeysColumnNameArraySupported(true);
|
||||
}
|
||||
else {
|
||||
setGeneratedKeysColumnNameArraySupported(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLException ex) {
|
||||
if (logger.isWarnEnabled()) {
|
||||
logger.warn("Error retrieving 'DatabaseMetaData.getDatabaseProductName': " + ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
this.databaseVersion = databaseMetaData.getDatabaseProductVersion();
|
||||
|
||||
Reference in New Issue
Block a user