Package org.apache.cayenne.dba
Class AutoAdapter
java.lang.Object
org.apache.cayenne.dba.AutoAdapter
- All Implemented Interfaces:
- 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
- 
Constructor SummaryConstructorsConstructorDescriptionAutoAdapter(Provider<DbAdapter> adapterProvider, JdbcEventLogger logger) Creates anAutoAdapterbased on a delegate adapter obtained via "adapterProvider".
- 
Method SummaryModifier and TypeMethodDescriptionvoidbindParameter(PreparedStatement statement, ParameterBinding parameterBinding) Binds an object value to PreparedStatement's parameter.buildAttribute(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).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.createTable(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 givenStringBuffercreateUniqueConstraint(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.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.Returns an instance of SQLAction that should handle the query.protected DbAdapterReturns a proxied DbAdapter, lazily creating it on first invocation.Returns a String used to terminate a batch in command-line tools.Returns a translator factory for EJBQL to SQL translation.Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.Returns a primary key generator.Returns SQL identifier quoting strategy objectgetSelectTranslator(FluentSelect<?, ?> query, EntityResolver entityResolver) protected DbAdapterLoads underlying DbAdapter delegate.voidsetPkGenerator(PkGenerator pkGenerator) Sets a PK generator override.booleanReturnstrueif the target database supports batch updates.booleanReturns true if a target database supports catalogs on reverse engineering.booleanReturns true if a target database supports key autogeneration.booleanReturns true if a target database supports key autogeneration in a batch insert.booleanReturns true if a target database supports UNIQUE constraints.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.Returns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.booleantypeSupportsLength(int type) booleantypeSupportsScale(int type) Returns true if supplied type can have a scale attribute as a part of column definition.unwrap()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.
- 
getSelectTranslator- Specified by:
- getSelectTranslatorin interface- DbAdapter
- Since:
- 4.2
 
- 
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
 
- 
getSqlTreeProcessor- Specified by:
- getSqlTreeProcessorin interface- DbAdapter
- Returns:
- SQLTreeProcessorthat can adjust SQL tree to specific database flavour
 
- 
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
 
- 
supportsGeneratedKeysForBatchInsertspublic boolean supportsGeneratedKeysForBatchInserts()Description copied from interface:DbAdapterReturns true if a target database supports key autogeneration in a batch insert.- Specified by:
- supportsGeneratedKeysForBatchInsertsin interface- DbAdapter
- Since:
- 4.2
- See Also:
 
- 
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
 
- 
typeSupportsScalepublic boolean typeSupportsScale(int type) Description copied from interface:DbAdapterReturns true if supplied type can have a scale attribute as a part of column definition.- Specified by:
- typeSupportsScalein interface- DbAdapter
- Parameters:
- type- sql type code
- Returns:
- trueif a given type supports scale
- Since:
- 5.0
 
- 
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, Exception Description 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
 
 
-