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 Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionAutoAdapter(Provider<DbAdapter> adapterProvider, JdbcEventLogger logger) Creates anAutoAdapterbased on a delegate adapter obtained via "adapterProvider". -
Method Summary
Modifier 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) getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver) Deprecated.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) unwrap()Allows the users to get access to the adapter decorated by a given adapter.
-
Field Details
-
adapterProvider
-
pkGenerator
-
logger
-
-
Constructor Details
-
AutoAdapter
Creates anAutoAdapterbased on a delegate adapter obtained via "adapterProvider".- Since:
- 3.1
-
-
Method Details
-
getAdapter
Returns a proxied DbAdapter, lazily creating it on first invocation. -
loadAdapter
Loads underlying DbAdapter delegate. -
getSelectTranslator
@Deprecated public SelectTranslator getSelectTranslator(SelectQuery<?> query, EntityResolver entityResolver) Deprecated.Description copied from interface:DbAdapterReturns a SelectTranslator that works with the adapter target database.- Specified by:
getSelectTranslatorin interfaceDbAdapter- Since:
- 4.0
-
getSelectTranslator
- Specified by:
getSelectTranslatorin interfaceDbAdapter- Since:
- 4.2
-
getBatchTerminator
Description 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 interfaceDbAdapter
-
getSqlTreeProcessor
- Specified by:
getSqlTreeProcessorin interfaceDbAdapter- Returns:
SQLTreeProcessorthat can adjust SQL tree to specific database flavour
-
getAction
Description copied from interface:DbAdapterReturns an instance of SQLAction that should handle the query. -
supportsUniqueConstraints
public boolean supportsUniqueConstraints()Description copied from interface:DbAdapterReturns true if a target database supports UNIQUE constraints.- Specified by:
supportsUniqueConstraintsin interfaceDbAdapter
-
supportsCatalogsOnReverseEngineering
public boolean supportsCatalogsOnReverseEngineering()Description copied from interface:DbAdapterReturns true if a target database supports catalogs on reverse engineering.- Specified by:
supportsCatalogsOnReverseEngineeringin interfaceDbAdapter
-
supportsGeneratedKeys
public 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 interfaceDbAdapter
-
supportsGeneratedKeysForBatchInserts
public boolean supportsGeneratedKeysForBatchInserts()Description copied from interface:DbAdapterReturns true if a target database supports key autogeneration in a batch insert.- Specified by:
supportsGeneratedKeysForBatchInsertsin interfaceDbAdapter- Since:
- 4.2
- See Also:
-
supportsBatchUpdates
public boolean supportsBatchUpdates()Description copied from interface:DbAdapterReturnstrueif the target database supports batch updates.- Specified by:
supportsBatchUpdatesin interfaceDbAdapter
-
typeSupportsLength
public boolean typeSupportsLength(int type) - Specified by:
typeSupportsLengthin interfaceDbAdapter
-
dropTableStatements
Description copied from interface:DbAdapterReturns a collection of SQL statements needed to drop a database table.- Specified by:
dropTableStatementsin interfaceDbAdapter
-
createTable
Description copied from interface:DbAdapterReturns a SQL string that can be used to create database table corresponding toentityparameter.- Specified by:
createTablein interfaceDbAdapter
-
createUniqueConstraint
Description 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 interfaceDbAdapter
-
createFkConstraint
Description 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 interfaceDbAdapter
-
externalTypesForJdbcType
Description 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 interfaceDbAdapter
-
getExtendedTypes
Description copied from interface:DbAdapterReturns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.- Specified by:
getExtendedTypesin interfaceDbAdapter
-
getPkGenerator
Returns a primary key generator.- Specified by:
getPkGeneratorin interfaceDbAdapter
-
setPkGenerator
Sets 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 interfaceDbAdapter- Parameters:
pkGenerator- to set
-
buildAttribute
public 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 interfaceDbAdapter- Parameters:
name- database column nametypeName- database specific type name, may be used as a hint to determine the right JDBC type.type- JDBC column typesize- 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
-
bindParameter
public void bindParameter(PreparedStatement statement, ParameterBinding parameterBinding) throws SQLException, Exception Description copied from interface:DbAdapterBinds an object value to PreparedStatement's parameter.- Specified by:
bindParameterin interfaceDbAdapter- Throws:
SQLExceptionException
-
tableTypeForTable
Description copied from interface:DbAdapterReturns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a simple user table.- Specified by:
tableTypeForTablein interfaceDbAdapter
-
tableTypeForView
Description copied from interface:DbAdapterReturns the name of the table type (as returned byDatabaseMetaData.getTableTypes) for a view table.- Specified by:
tableTypeForViewin interfaceDbAdapter
-
createTableAppendColumn
Description copied from interface:DbAdapterAppend the column type part of a "create table" to the givenStringBuffer- Specified by:
createTableAppendColumnin interfaceDbAdapter- Parameters:
sqlBuffer- theStringBufferto append the column type tocolumn- theDbAttributedefining the column to append type for
-
getQuotingStrategy
Description copied from interface:DbAdapterReturns SQL identifier quoting strategy object- Specified by:
getQuotingStrategyin interfaceDbAdapter- Since:
- 4.0
-
unwrap
Description copied from interface:DbAdapterAllows the users to get access to the adapter decorated by a given adapter. -
getEjbqlTranslatorFactory
Description copied from interface:DbAdapterReturns a translator factory for EJBQL to SQL translation.- Specified by:
getEjbqlTranslatorFactoryin interfaceDbAdapter- Since:
- 4.0
-
getSystemCatalogs
- Specified by:
getSystemCatalogsin interfaceDbAdapter- Returns:
- list of system catalogs
-
getSystemSchemas
- Specified by:
getSystemSchemasin interfaceDbAdapter- Returns:
- list of system schemas
-