Package org.apache.cayenne.dba
Class AutoAdapter
java.lang.Object
org.apache.cayenne.dba.AutoAdapter
- All Implemented Interfaces:
- DbAdapter
public class AutoAdapter extends Object implements DbAdapter
A DbAdapter that automatically detects the kind of database it is running on
 and instantiates an appropriate DB-specific adapter, delegating all
 subsequent method calls to this adapter.
- Since:
- 1.2
- 
Field SummaryFields Modifier and Type Field Description protected Provider<DbAdapter>adapterProviderprotected JdbcEventLoggerloggerprotected PkGeneratorpkGenerator
- 
Constructor SummaryConstructors Constructor Description AutoAdapter(Provider<DbAdapter> adapterProvider, JdbcEventLogger logger)Creates anAutoAdapterbased on a delegate adapter obtained via "adapterProvider".
- 
Method SummaryModifier and Type Method Description voidbindParameter(PreparedStatement statement, ParameterBinding parameterBinding)Binds an object value to PreparedStatement's parameter.DbAttributebuildAttribute(String name, String typeName, int type, int size, int precision, boolean allowNulls)Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).StringcreateFkConstraint(DbRelationship rel)Returns a SQL string that can be used to create a foreign key constraint for the relationship, or null if foreign keys are not supported.StringcreateTable(DbEntity entity)Returns a SQL string that can be used to create database table corresponding toentityparameter.voidcreateTableAppendColumn(StringBuffer sqlBuffer, DbAttribute column)Append the column type part of a "create table" to the givenStringBufferStringcreateUniqueConstraint(DbEntity source, Collection<DbAttribute> columns)Returns a DDL string to create a unique constraint over a set of columns, or null if the unique constraints are not supported.Collection<String>dropTableStatements(DbEntity table)Returns a collection of SQL statements needed to drop a database table.String[]externalTypesForJdbcType(int type)Returns an array of RDBMS types that can be used with JDBCtype.SQLActiongetAction(Query query, DataNode node)Returns an instance of SQLAction that should handle the query.protected DbAdaptergetAdapter()Returns a proxied DbAdapter, lazily creating it on first invocation.StringgetBatchTerminator()Returns a String used to terminate a batch in command-line tools.EJBQLTranslatorFactorygetEjbqlTranslatorFactory()Returns a translator factory for EJBQL to SQL translation.ExtendedTypeMapgetExtendedTypes()Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.PkGeneratorgetPkGenerator()Returns a primary key generator.QualifierTranslatorgetQualifierTranslator(QueryAssembler queryAssembler)QuotingStrategygetQuotingStrategy()Returns SQL identifier quoting strategy objectSelectTranslatorgetSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver)Returns a SelectTranslator that works with the adapter target database.List<String>getSystemCatalogs()List<String>getSystemSchemas()protected DbAdapterloadAdapter()Loads underlying DbAdapter delegate.voidsetPkGenerator(PkGenerator pkGenerator)Sets a PK generator override.booleansupportsBatchUpdates()Returnstrueif the target database supports batch updates.booleansupportsCatalogsOnReverseEngineering()Returns true if a target database supports catalogs on reverse engineering.booleansupportsGeneratedKeys()Returns true if a target database supports key autogeneration.booleansupportsUniqueConstraints()Returns true if a target database supports UNIQUE constraints.StringtableTypeForTable()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.StringtableTypeForView()Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.booleantypeSupportsLength(int type)DbAdapterunwrap()Allows the users to get access to the adapter decorated by a given adapter.
- 
Field Details- 
adapterProvider
- 
pkGenerator
- 
logger
 
- 
- 
Constructor Details- 
AutoAdapterCreates anAutoAdapterbased on a delegate adapter obtained via "adapterProvider".- Since:
- 3.1
 
 
- 
- 
Method Details- 
getAdapterReturns a proxied DbAdapter, lazily creating it on first invocation.
- 
loadAdapterLoads underlying DbAdapter delegate.
- 
getSelectTranslatorDescription copied from interface:DbAdapterReturns a SelectTranslator that works with the adapter target database.- Specified by:
- getSelectTranslatorin interface- DbAdapter
- Since:
- 4.0
 
- 
getBatchTerminatorDescription copied from interface:DbAdapterReturns a String used to terminate a batch in command-line tools. E.g. ";" on Oracle or "go" on Sybase.- Specified by:
- getBatchTerminatorin interface- DbAdapter
 
- 
getQualifierTranslator- Specified by:
- getQualifierTranslatorin interface- DbAdapter
 
- 
getActionDescription copied from interface:DbAdapterReturns an instance of SQLAction that should handle the query.
- 
supportsUniqueConstraintspublic boolean supportsUniqueConstraints()Description copied from interface:DbAdapterReturns true if a target database supports UNIQUE constraints.- Specified by:
- supportsUniqueConstraintsin interface- DbAdapter
 
- 
supportsCatalogsOnReverseEngineeringpublic boolean supportsCatalogsOnReverseEngineering()Description copied from interface:DbAdapterReturns true if a target database supports catalogs on reverse engineering.- Specified by:
- supportsCatalogsOnReverseEngineeringin interface- DbAdapter
 
- 
supportsGeneratedKeyspublic boolean supportsGeneratedKeys()Description copied from interface:DbAdapterReturns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.- Specified by:
- supportsGeneratedKeysin interface- DbAdapter
 
- 
supportsBatchUpdatespublic boolean supportsBatchUpdates()Description copied from interface:DbAdapterReturnstrueif the target database supports batch updates.- Specified by:
- supportsBatchUpdatesin interface- DbAdapter
 
- 
typeSupportsLengthpublic boolean typeSupportsLength(int type)- Specified by:
- typeSupportsLengthin interface- DbAdapter
 
- 
dropTableStatementsDescription copied from interface:DbAdapterReturns a collection of SQL statements needed to drop a database table.- Specified by:
- dropTableStatementsin interface- DbAdapter
 
- 
createTableDescription copied from interface:DbAdapterReturns a SQL string that can be used to create database table corresponding toentityparameter.- Specified by:
- createTablein interface- DbAdapter
 
- 
createUniqueConstraintDescription copied from interface:DbAdapterReturns a DDL string to create a unique constraint over a set of columns, or null if the unique constraints are not supported.- Specified by:
- createUniqueConstraintin interface- DbAdapter
 
- 
createFkConstraintDescription copied from interface:DbAdapterReturns a SQL string that can be used to create a foreign key constraint for the relationship, or null if foreign keys are not supported.- Specified by:
- createFkConstraintin interface- DbAdapter
 
- 
externalTypesForJdbcTypeDescription copied from interface:DbAdapterReturns an array of RDBMS types that can be used with JDBCtype. Valid JDBC types are defined in java.sql.Types.- Specified by:
- externalTypesForJdbcTypein interface- DbAdapter
 
- 
getExtendedTypesDescription copied from interface:DbAdapterReturns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.- Specified by:
- getExtendedTypesin interface- DbAdapter
 
- 
getPkGeneratorReturns a primary key generator.- Specified by:
- getPkGeneratorin interface- DbAdapter
 
- 
setPkGeneratorSets a PK generator override. If set to non-null value, such PK generator will be used instead of the one provided by wrapped adapter.- Specified by:
- setPkGeneratorin interface- DbAdapter
- Parameters:
- pkGenerator- to set
 
- 
buildAttributepublic DbAttribute buildAttribute(String name, String typeName, int type, int size, int precision, boolean allowNulls)Description copied from interface:DbAdapterCreates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).- Specified by:
- buildAttributein interface- DbAdapter
- Parameters:
- name- database column name
- typeName- database specific type name, may be used as a hint to determine the right JDBC type.
- type- JDBC column type
- size- database column size (ignored if less than zero)
- precision- database column scale, i.e. the number of decimal digits (ignored if less than zero)
- allowNulls- database column nullable parameter
 
- 
bindParameterpublic void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws SQLException, ExceptionDescription copied from interface:DbAdapterBinds an object value to PreparedStatement's parameter.- Specified by:
- bindParameterin interface- DbAdapter
- Throws:
- SQLException
- Exception
 
- 
tableTypeForTableDescription copied from interface:DbAdapterReturns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.- Specified by:
- tableTypeForTablein interface- DbAdapter
 
- 
tableTypeForViewDescription copied from interface:DbAdapterReturns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.- Specified by:
- tableTypeForViewin interface- DbAdapter
 
- 
createTableAppendColumnDescription copied from interface:DbAdapterAppend the column type part of a "create table" to the givenStringBuffer- Specified by:
- createTableAppendColumnin interface- DbAdapter
- Parameters:
- sqlBuffer- the- StringBufferto append the column type to
- column- the- DbAttributedefining the column to append type for
 
- 
getQuotingStrategyDescription copied from interface:DbAdapterReturns SQL identifier quoting strategy object- Specified by:
- getQuotingStrategyin interface- DbAdapter
- Since:
- 4.0
 
- 
unwrapDescription copied from interface:DbAdapterAllows the users to get access to the adapter decorated by a given adapter.
- 
getEjbqlTranslatorFactoryDescription copied from interface:DbAdapterReturns a translator factory for EJBQL to SQL translation.- Specified by:
- getEjbqlTranslatorFactoryin interface- DbAdapter
- Since:
- 4.0
 
- 
getSystemCatalogs- Specified by:
- getSystemCatalogsin interface- DbAdapter
- Returns:
- list of system catalogs
 
- 
getSystemSchemas- Specified by:
- getSystemSchemasin interface- DbAdapter
- Returns:
- list of system schemas
 
 
-