org.springframework.jdbc.core.metadata
Class OracleTableMetaDataProvider

java.lang.Object
  extended by org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider
      extended by org.springframework.jdbc.core.metadata.OracleTableMetaDataProvider
All Implemented Interfaces:
TableMetaDataProvider

public class OracleTableMetaDataProvider
extends GenericTableMetaDataProvider

Oracle-specific implementation of the TableMetaDataProvider. Supports a feature for including synonyms in the metadata lookup. Also supports lookup of current schema using the sys_context.

Thanks to Mike Youngstrom and Bruce Campbell for submitting the original suggestion for the Oracle current schema lookup implementation.

Since:
3.0
Author:
Thomas Risberg, Juergen Hoeller

Field Summary
private  java.lang.String defaultSchema
           
private  boolean includeSynonyms
           
 
Fields inherited from class org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider
logger
 
Constructor Summary
OracleTableMetaDataProvider(java.sql.DatabaseMetaData databaseMetaData)
           
OracleTableMetaDataProvider(java.sql.DatabaseMetaData databaseMetaData, boolean includeSynonyms)
           
 
Method Summary
protected  java.lang.String getDefaultSchema()
          Provide access to default schema for subclasses.
 void initializeWithTableColumnMetaData(java.sql.DatabaseMetaData databaseMetaData, java.lang.String catalogName, java.lang.String schemaName, java.lang.String tableName)
          Initialize using provided database metadata, table and column information.
private  void lookupDefaultSchema(java.sql.DatabaseMetaData databaseMetaData)
           
 
Methods inherited from class org.springframework.jdbc.core.metadata.GenericTableMetaDataProvider
catalogNameToUse, getDatabaseVersion, getNativeJdbcExtractor, getSimpleQueryForGetGeneratedKey, getTableParameterMetaData, initializeWithMetaData, isGeneratedKeysColumnNameArraySupported, isGetGeneratedKeysSimulated, isGetGeneratedKeysSupported, isStoresLowerCaseIdentifiers, isStoresUpperCaseIdentifiers, isTableColumnMetaDataUsed, metaDataCatalogNameToUse, metaDataSchemaNameToUse, schemaNameToUse, setGeneratedKeysColumnNameArraySupported, setGetGeneratedKeysSupported, setNativeJdbcExtractor, setStoresLowerCaseIdentifiers, setStoresUpperCaseIdentifiers, tableNameToUse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

includeSynonyms

private final boolean includeSynonyms

defaultSchema

private java.lang.String defaultSchema
Constructor Detail

OracleTableMetaDataProvider

public OracleTableMetaDataProvider(java.sql.DatabaseMetaData databaseMetaData)
                            throws java.sql.SQLException
Throws:
java.sql.SQLException

OracleTableMetaDataProvider

public OracleTableMetaDataProvider(java.sql.DatabaseMetaData databaseMetaData,
                                   boolean includeSynonyms)
                            throws java.sql.SQLException
Throws:
java.sql.SQLException
Method Detail

getDefaultSchema

protected java.lang.String getDefaultSchema()
Description copied from class: GenericTableMetaDataProvider
Provide access to default schema for subclasses.

Overrides:
getDefaultSchema in class GenericTableMetaDataProvider

initializeWithTableColumnMetaData

public void initializeWithTableColumnMetaData(java.sql.DatabaseMetaData databaseMetaData,
                                              java.lang.String catalogName,
                                              java.lang.String schemaName,
                                              java.lang.String tableName)
                                       throws java.sql.SQLException
Description copied from interface: TableMetaDataProvider
Initialize using provided database metadata, table and column information. This initalization can be turned off by specifying that column meta data should not be used.

Specified by:
initializeWithTableColumnMetaData in interface TableMetaDataProvider
Overrides:
initializeWithTableColumnMetaData in class GenericTableMetaDataProvider
Parameters:
databaseMetaData - used to retrieve database specific information
catalogName - name of catalog to use or null
schemaName - name of schema name to use or null
tableName - name of the table
Throws:
java.sql.SQLException

lookupDefaultSchema

private void lookupDefaultSchema(java.sql.DatabaseMetaData databaseMetaData)