|
|
|
@ -21,7 +21,6 @@ import java.sql.ResultSet; |
|
|
|
import java.sql.SQLException; |
|
|
|
import java.sql.SQLException; |
|
|
|
import java.sql.Types; |
|
|
|
import java.sql.Types; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.Arrays; |
|
|
|
|
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Locale; |
|
|
|
import java.util.Locale; |
|
|
|
@ -48,11 +47,6 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { |
|
|
|
/** Logger available to subclasses. */ |
|
|
|
/** Logger available to subclasses. */ |
|
|
|
protected static final Log logger = LogFactory.getLog(TableMetaDataProvider.class); |
|
|
|
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. */ |
|
|
|
/** The name of the user currently connected. */ |
|
|
|
private final @Nullable String userName; |
|
|
|
private final @Nullable String userName; |
|
|
|
|
|
|
|
|
|
|
|
@ -93,45 +87,14 @@ public class GenericTableMetaDataProvider implements TableMetaDataProvider { |
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException { |
|
|
|
public void initializeWithMetaData(DatabaseMetaData databaseMetaData) throws SQLException { |
|
|
|
try { |
|
|
|
try { |
|
|
|
if (databaseMetaData.supportsGetGeneratedKeys()) { |
|
|
|
setGetGeneratedKeysSupported(databaseMetaData.supportsGetGeneratedKeys()); |
|
|
|
logger.debug("GetGeneratedKeys is supported"); |
|
|
|
setGeneratedKeysColumnNameArraySupported(isGetGeneratedKeysSupported()); |
|
|
|
setGetGeneratedKeysSupported(true); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else { |
|
|
|
|
|
|
|
logger.debug("GetGeneratedKeys is not supported"); |
|
|
|
|
|
|
|
setGetGeneratedKeysSupported(false); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
catch (SQLException ex) { |
|
|
|
catch (SQLException ex) { |
|
|
|
if (logger.isWarnEnabled()) { |
|
|
|
if (logger.isWarnEnabled()) { |
|
|
|
logger.warn("Error retrieving 'DatabaseMetaData.supportsGetGeneratedKeys': " + ex.getMessage()); |
|
|
|
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 { |
|
|
|
try { |
|
|
|
this.databaseVersion = databaseMetaData.getDatabaseProductVersion(); |
|
|
|
this.databaseVersion = databaseMetaData.getDatabaseProductVersion(); |
|
|
|
|