Package org.apache.cayenne.dba.oracle
Class OracleAdapter
- java.lang.Object
-
- org.apache.cayenne.dba.JdbcAdapter
-
- org.apache.cayenne.dba.oracle.OracleAdapter
-
- All Implemented Interfaces:
DbAdapter
- Direct Known Subclasses:
Oracle8Adapter
public class OracleAdapter extends JdbcAdapter
DbAdapter implementation for Oracle RDBMS . Sample connection settings to use with Oracle are shown below:test-oracle.jdbc.username = test test-oracle.jdbc.password = secret test-oracle.jdbc.url = jdbc:oracle:thin:@//192.168.0.20:1521/ora1 test-oracle.jdbc.driver = oracle.jdbc.driver.OracleDriver
-
-
Field Summary
Fields Modifier and Type Field Description protected static boolean
initDone
static String
NEW_BLOB_FUNCTION
static String
NEW_CLOB_FUNCTION
static String
ORACLE_BLOB
static String
ORACLE_CLOB
static String
ORACLE_FLOAT
static String
ORACLE_NCLOB
protected static int
oracleCursorType
protected static boolean
supportsOracleLOB
static String
TRIM_FUNCTION
-
Fields inherited from class org.apache.cayenne.dba.JdbcAdapter
batchQueryBuilderFactory, caseInsensitiveCollations, ejbqlTranslatorFactory, extendedTypes, logger, quotingStrategy, resourceLocator, supportsBatchUpdates, supportsGeneratedKeys, supportsUniqueConstraints, typesHandler
-
-
Constructor Summary
Constructors Constructor Description OracleAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
bindParameter(PreparedStatement statement, ParameterBinding binding)
Binds an object value to PreparedStatement's parameter.DbAttribute
buildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls)
Fixes some reverse engineering problems.protected void
configureExtendedTypes(ExtendedTypeMap map)
Installs appropriate ExtendedTypes as converters for passing values between JDBC and Java layers.protected EJBQLTranslatorFactory
createEJBQLTranslatorFactory()
Creates and returns anEJBQLTranslatorFactory
used to generate visitors for EJBQL to SQL translations.protected PkGenerator
createPkGenerator()
Creates and returns a primary key generator.Collection<String>
dropTableStatements(DbEntity table)
Returns a query string to drop a table corresponding toent
DbEntity.SQLAction
getAction(Query query, DataNode node)
Uses OracleActionBuilder to create the right action.static int
getOracleCursorType()
Returns an Oracle JDBC extension type defined in oracle.jdbc.driver.OracleTypes.CURSOR.SQLTreeProcessor
getSqlTreeProcessor()
List<String>
getSystemSchemas()
protected static void
initDriverInformation()
static boolean
isSupportsOracleLOB()
-
Methods inherited from class org.apache.cayenne.dba.JdbcAdapter
createFkConstraint, createQuotingStrategy, createTable, createTableAppendColumn, createTableAppendPKClause, createUniqueConstraint, externalTypesForJdbcType, findResource, getBatchTerminator, getEjbqlTranslatorFactory, getExtendedTypes, getJdbcEventLogger, getPkGenerator, getQuotingStrategy, getSelectTranslator, getSelectTranslator, getSystemCatalogs, getType, initExtendedTypes, setEjbqlTranslatorFactory, setPkGenerator, setSupportsBatchUpdates, setSupportsGeneratedKeys, setSupportsUniqueConstraints, sizeAndPrecision, supportsBatchUpdates, supportsCatalogsOnReverseEngineering, supportsGeneratedKeys, supportsUniqueConstraints, tableTypeForTable, tableTypeForView, typeSupportsLength, unwrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cayenne.dba.DbAdapter
supportsGeneratedKeysForBatchInserts
-
-
-
-
Field Detail
-
ORACLE_FLOAT
public static final String ORACLE_FLOAT
- See Also:
- Constant Field Values
-
ORACLE_BLOB
public static final String ORACLE_BLOB
- See Also:
- Constant Field Values
-
ORACLE_CLOB
public static final String ORACLE_CLOB
- See Also:
- Constant Field Values
-
ORACLE_NCLOB
public static final String ORACLE_NCLOB
- See Also:
- Constant Field Values
-
TRIM_FUNCTION
public static final String TRIM_FUNCTION
- See Also:
- Constant Field Values
-
NEW_CLOB_FUNCTION
public static final String NEW_CLOB_FUNCTION
- See Also:
- Constant Field Values
-
NEW_BLOB_FUNCTION
public static final String NEW_BLOB_FUNCTION
- See Also:
- Constant Field Values
-
initDone
protected static boolean initDone
-
oracleCursorType
protected static int oracleCursorType
-
supportsOracleLOB
protected static boolean supportsOracleLOB
-
-
Constructor Detail
-
OracleAdapter
public OracleAdapter(RuntimeProperties runtimeProperties, List<ExtendedType> defaultExtendedTypes, List<ExtendedType> userExtendedTypes, List<ExtendedTypeFactory> extendedTypeFactories, ResourceLocator resourceLocator, ValueObjectTypeRegistry valueObjectTypeRegistry)
-
-
Method Detail
-
initDriverInformation
protected static void initDriverInformation()
-
isSupportsOracleLOB
public static boolean isSupportsOracleLOB()
-
getOracleCursorType
public static int getOracleCursorType()
Returns an Oracle JDBC extension type defined in oracle.jdbc.driver.OracleTypes.CURSOR. This value is determined from Oracle driver classes via reflection in runtime, so that Cayenne code has no compile dependency on the driver. This means that calling this method when the driver is not available will result in an exception.
-
getSqlTreeProcessor
public SQLTreeProcessor getSqlTreeProcessor()
- Specified by:
getSqlTreeProcessor
in interfaceDbAdapter
- Overrides:
getSqlTreeProcessor
in classJdbcAdapter
- Returns:
SQLTreeProcessor
that can adjust SQL tree to specific database flavour- Since:
- 4.2
-
createEJBQLTranslatorFactory
protected EJBQLTranslatorFactory createEJBQLTranslatorFactory()
Description copied from class:JdbcAdapter
Creates and returns anEJBQLTranslatorFactory
used to generate visitors for EJBQL to SQL translations. This method should be overriden by subclasses that need to customize EJBQL generation.- Overrides:
createEJBQLTranslatorFactory
in classJdbcAdapter
- Since:
- 3.0
-
configureExtendedTypes
protected void configureExtendedTypes(ExtendedTypeMap map)
Installs appropriate ExtendedTypes as converters for passing values between JDBC and Java layers.- Overrides:
configureExtendedTypes
in classJdbcAdapter
-
createPkGenerator
protected PkGenerator createPkGenerator()
Creates and returns a primary key generator. Overrides superclass implementation to return an instance of OraclePkGenerator.- Overrides:
createPkGenerator
in classJdbcAdapter
-
dropTableStatements
public Collection<String> dropTableStatements(DbEntity table)
Returns a query string to drop a table corresponding toent
DbEntity. Changes superclass behavior to drop all related foreign key constraints.- Specified by:
dropTableStatements
in interfaceDbAdapter
- Overrides:
dropTableStatements
in classJdbcAdapter
- Since:
- 3.0
-
bindParameter
public void bindParameter(PreparedStatement statement, ParameterBinding binding) throws SQLException, Exception
Description copied from interface:DbAdapter
Binds an object value to PreparedStatement's parameter.- Specified by:
bindParameter
in interfaceDbAdapter
- Overrides:
bindParameter
in classJdbcAdapter
- Throws:
SQLException
Exception
-
buildAttribute
public DbAttribute buildAttribute(String name, String typeName, int type, int size, int scale, boolean allowNulls)
Fixes some reverse engineering problems. Namely if a columns is created as DECIMAL and has non-positive precision it is converted to INTEGER.- Specified by:
buildAttribute
in interfaceDbAdapter
- Overrides:
buildAttribute
in classJdbcAdapter
- 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)scale
- database column scale, i.e. the number of decimal digits (ignored if less than zero)allowNulls
- database column nullable parameter
-
getAction
public SQLAction getAction(Query query, DataNode node)
Uses OracleActionBuilder to create the right action.- Specified by:
getAction
in interfaceDbAdapter
- Overrides:
getAction
in classJdbcAdapter
- Since:
- 1.2
-
getSystemSchemas
public List<String> getSystemSchemas()
- Specified by:
getSystemSchemas
in interfaceDbAdapter
- Overrides:
getSystemSchemas
in classJdbcAdapter
- Returns:
- list of system schemas
-
-