Class OracleAdapter
- java.lang.Object
-
- org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
-
- org.datanucleus.store.rdbms.adapter.OracleAdapter
-
- All Implemented Interfaces:
DatastoreAdapter
public class OracleAdapter extends BaseDatastoreAdapter
Provides methods for adapting SQL language elements to the Oracle database.- See Also:
BaseDatastoreAdapter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
BaseDatastoreAdapter.ColumnTypeMappings
-
-
Field Summary
Fields Modifier and Type Field Description static String
OJDBC_DRIVER_NAME
What the official Oracle JDBC driver uses to identify itself.static String
ORACLE_10_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle10gstatic String
ORACLE_8_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle8static String
ORACLE_9_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle9i-
Fields inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
catalogSeparator, datastoreMajorVersion, datastoreMinorVersion, datastoreProductName, datastoreProductVersion, datastoreRevisionVersion, driverMajorVersion, driverMinorVersion, driverName, driverVersion, identifierQuoteString, MAX_IDENTIFIER_LENGTH, maxColumnNameLength, maxConstraintNameLength, maxIndexNameLength, maxTableNameLength, NONRESERVED_WORDS, reservedKeywords, SQL2003_RESERVED_WORDS, SQL92_RESERVED_WORDS, SQL99_RESERVED_WORDS, supportedJdbcTypesById, supportedOptions, unsupportedJdbcTypesById
-
Fields inherited from interface org.datanucleus.store.rdbms.adapter.DatastoreAdapter
ACCESS_PARENTQUERY_IN_SUBQUERY_JOINED, ALTER_TABLE_DROP_CONSTRAINT_SYNTAX, ALTER_TABLE_DROP_FOREIGN_KEY_CONSTRAINT, ANSI_CROSSJOIN_SYNTAX, ANSI_JOIN_SYNTAX, BIT_IS_REALLY_BOOLEAN, BLOB_SET_USING_SETSTRING, BOOLEAN_COMPARISON, CATALOGS_IN_TABLE_DEFINITIONS, CHAR_COLUMNS_PADDED_WITH_SPACES, CHECK_IN_CREATE_STATEMENTS, CHECK_IN_END_CREATE_STATEMENTS, CLOB_SET_USING_SETSTRING, COLUMN_LENGTH_SEMANTICS, CREATE_INDEX_COLUMN_ORDERING, CREATE_INDEXES_BEFORE_FOREIGN_KEYS, CROSSJOIN_ASINNER11_SYNTAX, DATETIME_STORES_MILLISECS, DEFAULT_BEFORE_NULL_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_IN_COLUMN_OPTIONS, DEFAULT_KEYWORD_WITH_NOT_NULL_IN_COLUMN_OPTIONS, DEFERRED_CONSTRAINTS, DISTINCT_WITH_SELECT_FOR_UPDATE, ESCAPE_EXPRESSION_IN_LIKE_PREDICATE, EXISTS_SYNTAX, FK_DELETE_ACTION_CASCADE, FK_DELETE_ACTION_DEFAULT, FK_DELETE_ACTION_NULL, FK_DELETE_ACTION_RESTRICT, FK_IN_END_CREATE_STATEMENTS, FK_UPDATE_ACTION_CASCADE, FK_UPDATE_ACTION_DEFAULT, FK_UPDATE_ACTION_NULL, FK_UPDATE_ACTION_RESTRICT, GET_GENERATED_KEYS_STATEMENT, GROUP_BY_REQUIRES_ALL_SELECT_PRIMARIES, GROUPING_WITH_SELECT_FOR_UPDATE, HAVING_WITH_SELECT_FOR_UPDATE, HOLD_CURSORS_OVER_COMMIT, IDENTIFIERS_LOWERCASE, IDENTIFIERS_LOWERCASE_QUOTED, IDENTIFIERS_MIXEDCASE, IDENTIFIERS_MIXEDCASE_QUOTED, IDENTIFIERS_MIXEDCASE_QUOTED_SENSITIVE, IDENTIFIERS_MIXEDCASE_SENSITIVE, IDENTIFIERS_UPPERCASE, IDENTIFIERS_UPPERCASE_QUOTED, IDENTITY_COLUMN_TYPE_SPECIFICATION, IDENTITY_COLUMNS, IDENTITY_KEYS_NULL_SPECIFICATION, IDENTITY_PK_IN_CREATE_TABLE_COLUMN_DEF, INCLUDE_ORDERBY_COLS_IN_SELECT, LOCK_ROW_USING_OPTION_AFTER_FROM, LOCK_ROW_USING_OPTION_WITHIN_JOIN, LOCK_ROW_USING_SELECT_FOR_UPDATE, LOCK_ROW_USING_SELECT_FOR_UPDATE_NOWAIT, MULTITABLES_WITH_SELECT_FOR_UPDATE, NATIVE_ENUM_TYPE, NULL_EQUALS_EMPTY_STRING, NULLS_IN_CANDIDATE_KEYS, NULLS_KEYWORD_IN_COLUMN_OPTIONS, OPERATOR_BITWISE_AND, OPERATOR_BITWISE_OR, OPERATOR_BITWISE_XOR, ORDERBY_NULLS_DIRECTIVES, ORDERBY_NULLS_USING_CASE_NULL, ORDERBY_NULLS_USING_COLUMN_IS_NULL, ORDERBY_NULLS_USING_ISNULL, ORDERBY_USING_SELECT_COLUMN_INDEX, ORDERING_WITH_SELECT_FOR_UPDATE, PARAMETER_IN_CASE_IN_UPDATE_CLAUSE, PERSIST_OF_UNASSIGNED_CHAR, PRIMARYKEY_IN_CREATE_STATEMENTS, PROJECTION_IN_TABLE_REFERENCE_JOINS, RAW_PREFIX_LIKE_STATEMENTS, RESULTSET_TYPE_FORWARD_ONLY, RESULTSET_TYPE_SCROLL_INSENSITIVE, RESULTSET_TYPE_SCROLL_SENSITIVE, RIGHT_OUTER_JOIN, SCHEMAS_IN_TABLE_DEFINITIONS, SEQUENCES, SOME_ANY_ALL_SUBQUERY_EXPRESSIONS, STATEMENT_BATCHING, STORED_PROCEDURES, SUBQUERY_IN_HAVING, TX_ISOLATION_NONE, TX_ISOLATION_READ_COMMITTED, TX_ISOLATION_READ_UNCOMMITTED, TX_ISOLATION_REPEATABLE_READ, TX_ISOLATION_SERIALIZABLE, UNION_SYNTAX, UNIQUE_IN_END_CREATE_STATEMENTS, UPDATE_DELETE_STATEMENT_ALLOW_TABLE_ALIAS_IN_WHERE_CLAUSE, UPDATE_STATEMENT_ALLOW_TABLE_ALIAS_IN_SET_CLAUSE, USE_UNION_ALL, VALUE_GENERATION_UUID_STRING, VIEWS
-
-
Constructor Summary
Constructors Constructor Description OracleAdapter(DatabaseMetaData metadata)
Constructs an Oracle adapter based on the given JDBC metadata.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description String
getAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory)
Returns the appropriate SQL to add a primary key to its table.String
getCatalogName(Connection conn)
Accessor for the Catalog Name for this datastore.ResultSet
getColumns(Connection conn, String catalog, String schema, String table, String columnNamePattern)
Accessor for table and column information for a catalog/schema in this datastore.String
getCreateDatabaseStatement(String catalogName, String schemaName)
Method to return the statement necessary to create a database with this RDBMS.String
getDatastoreDateStatement()
Accessor for a statement that will return the statement to use to get the datastore date.String
getDropDatabaseStatement(String catalogName, String schemaName)
Method to return the statement necessary to drop a database with this RDBMS.String
getDropTableStatement(Table table)
Method to return the drop table statement for Oracle.ResultSet
getExistingIndexes(Connection conn, String catalog, String schema, String table)
Provide the existing indexes in the database for the table.String
getIdentityKeyword(org.datanucleus.store.StoreManager storeMgr)
Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).String
getInsertStatementForNoColumns(Table table)
Method to return the INSERT statement to use when inserting into a table that has no columns specified.MappingManager
getMappingManager(RDBMSStoreManager storeMgr)
Accessor for a MappingManager suitable for use with this datastore adapter.String
getOrderString(org.datanucleus.store.StoreManager storeMgr, String orderString, SQLExpression sqlExpr)
Convenience method to allow adaption of an ordering string before applying it.String
getRangeByRowNumberColumn2()
Method to return the column name to use when handling ranges via a rownumber on the select using the second method (Oracle).String
getSchemaName(Connection conn)
Accessor for the Schema Name for this datastore.String
getSequenceCreateStmt(String sequenceName, Integer min, Integer max, Integer start, Integer increment, Integer cacheSize)
Accessor for the sequence statement to create the sequence.String
getSequenceNextStmt(String sequenceName)
Accessor for the statement for getting the next id from the sequence for this datastore.Class
getSQLMethodClass(String className, String methodName, org.datanucleus.ClassLoaderResolver clr)
Accessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).Class
getSQLOperationClass(String operationName)
Accessor for the SQLOperation class for the specified operation (if available for this datastore).String
getSurrogateForEmptyStrings()
Some databases, Oracle, treats an empty string (0 length) equals nullint
getTransactionIsolationForSchemaCreation()
Accessor for the transaction isolation level to use during schema creation.String
getVendorID()
Accessor for the vendor idvoid
initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)
Initialise the types for this datastore.boolean
isStatementTimeout(SQLException sqle)
return whether this exception represents a timed out statement.protected void
loadColumnMappings(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr)
Load all datastore mappings for this RDBMS database.RDBMSColumnInfo
newRDBMSColumnInfo(ResultSet rs)
Method to create a column info for the current row.SQLTypeInfo
newSQLTypeInfo(ResultSet rs)
Create a new SQL type info from the current row of the passed ResultSet.boolean
validToSelectMappingInStatement(SelectStatement stmt, JavaTypeMapping m)
Method to return if it is valid to select the specified mapping for the specified statement for this datastore adapter.-
Methods inherited from class org.datanucleus.store.rdbms.adapter.BaseDatastoreAdapter
addSQLTypeForJDBCType, deregisterColumnMappingsForJDBCType, getAdapterTime, getAddCandidateKeyStatement, getAddColumnStatement, getAddForeignKeyStatement, getCatalogSeparator, getCheckConstraintForValues, getColumnMappingClass, getContinuationString, getCreateIndexStatement, getCreateTableStatement, getDatastoreDriverName, getDatastoreDriverVersion, getDatastoreIdentifierMaxLength, getDatastoreProductName, getDatastoreProductVersion, getDefaultSqlTypeForJavaType, getDeleteTableStatement, getDriverMajorVersion, getDriverMinorVersion, getDropViewStatement, getEscapeCharacter, getEscapePatternExpression, getIdentifierQuoteString, getIdentityJavaTypeForType, getIdentityLastValueStmt, getJDBCTypeForName, getMaxForeignKeys, getMaxIndexes, getMiliseconds, getNameForJDBCType, getNewUUIDFunction, getNumericConversionFunction, getPatternExpressionAnyCharacter, getPatternExpressionZeroMoreCharacters, getPreferredDefaultSQLTypeForJDBCType, getRangeByLimitEndOfStatementClause, getRangeByRowNumberColumn, getRequiredTransactionIsolationLevel, getReservedWords, getSelectForUpdateText, getSelectNewUUIDStmt, getSelectWithLockOption, getSQLTypeInfoForJdbcType, getSupportedOptions, getTime, getUnlimitedLengthPrecisionValue, getUpdateTableStatement, initialise, initialiseDatastore, isIdentityFieldDataType, isReservedKeyword, isStatementCancel, isValidPrimaryKeyType, newFKInfo, registerColumnMapping, registerColumnMapping, sequenceExists, supportsOption, supportsQueryFetchSize, supportsTransactionIsolation, toString, validToIndexMapping
-
-
-
-
Field Detail
-
OJDBC_DRIVER_NAME
public static final String OJDBC_DRIVER_NAME
What the official Oracle JDBC driver uses to identify itself.- See Also:
- Constant Field Values
-
ORACLE_8_RESERVED_WORDS
public static final String ORACLE_8_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle8- See Also:
- Constant Field Values
-
ORACLE_9_RESERVED_WORDS
public static final String ORACLE_9_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle9i- See Also:
- Constant Field Values
-
ORACLE_10_RESERVED_WORDS
public static final String ORACLE_10_RESERVED_WORDS
A string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle10g- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OracleAdapter
public OracleAdapter(DatabaseMetaData metadata)
Constructs an Oracle adapter based on the given JDBC metadata.- Parameters:
metadata
- the database metadata.
-
-
Method Detail
-
initialiseTypes
public void initialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)
Initialise the types for this datastore.- Specified by:
initialiseTypes
in interfaceDatastoreAdapter
- Overrides:
initialiseTypes
in classBaseDatastoreAdapter
- Parameters:
handler
- SchemaHandler that we initialise the types formconn
- Managed connection to use
-
newSQLTypeInfo
public SQLTypeInfo newSQLTypeInfo(ResultSet rs)
Description copied from interface:DatastoreAdapter
Create a new SQL type info from the current row of the passed ResultSet. Allows an adapter to override particular types where the JDBC driver is known to be buggy.- Specified by:
newSQLTypeInfo
in interfaceDatastoreAdapter
- Overrides:
newSQLTypeInfo
in classBaseDatastoreAdapter
- Parameters:
rs
- ResultSet- Returns:
- The SQL type info
-
getMappingManager
public MappingManager getMappingManager(RDBMSStoreManager storeMgr)
Accessor for a MappingManager suitable for use with this datastore adapter.- Specified by:
getMappingManager
in interfaceDatastoreAdapter
- Overrides:
getMappingManager
in classBaseDatastoreAdapter
- Parameters:
storeMgr
- The StoreManager- Returns:
- the MappingManager
-
getVendorID
public String getVendorID()
Accessor for the vendor id- Specified by:
getVendorID
in interfaceDatastoreAdapter
- Overrides:
getVendorID
in classBaseDatastoreAdapter
- Returns:
- The Oracle vendor id
-
getSurrogateForEmptyStrings
public String getSurrogateForEmptyStrings()
Some databases, Oracle, treats an empty string (0 length) equals null- Specified by:
getSurrogateForEmptyStrings
in interfaceDatastoreAdapter
- Overrides:
getSurrogateForEmptyStrings
in classBaseDatastoreAdapter
- Returns:
- returns a surrogate to replace the empty string in the database otherwise it would be treated as null
-
getCatalogName
public String getCatalogName(Connection conn) throws SQLException
Description copied from class:BaseDatastoreAdapter
Accessor for the Catalog Name for this datastore.- Specified by:
getCatalogName
in interfaceDatastoreAdapter
- Overrides:
getCatalogName
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to the datastore- Returns:
- null, because oracle does not have catalogs
- Throws:
SQLException
- Thrown if error occurs in determining the catalog name.
-
getSchemaName
public String getSchemaName(Connection conn) throws SQLException
Description copied from class:BaseDatastoreAdapter
Accessor for the Schema Name for this datastore.- Specified by:
getSchemaName
in interfaceDatastoreAdapter
- Overrides:
getSchemaName
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to the datastore- Returns:
- The schema name
- Throws:
SQLException
- Thrown if error occurs in determining the schema name.
-
getCreateDatabaseStatement
public String getCreateDatabaseStatement(String catalogName, String schemaName)
Description copied from interface:DatastoreAdapter
Method to return the statement necessary to create a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
getCreateDatabaseStatement
in interfaceDatastoreAdapter
- Overrides:
getCreateDatabaseStatement
in classBaseDatastoreAdapter
- Parameters:
catalogName
- name of the catalogschemaName
- Name of the schema- Returns:
- The DDL statement
-
getDropDatabaseStatement
public String getDropDatabaseStatement(String catalogName, String schemaName)
Description copied from interface:DatastoreAdapter
Method to return the statement necessary to drop a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
getDropDatabaseStatement
in interfaceDatastoreAdapter
- Overrides:
getDropDatabaseStatement
in classBaseDatastoreAdapter
- Parameters:
catalogName
- Name of the catalogschemaName
- Name of the schema- Returns:
- The DDL statement
-
getAddPrimaryKeyStatement
public String getAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory)
Description copied from class:BaseDatastoreAdapter
Returns the appropriate SQL to add a primary key to its table. It should return something like:ALTER TABLE FOO ADD [CONSTRAINT FOO_PK ]PRIMARY KEY (BAR)
- Specified by:
getAddPrimaryKeyStatement
in interfaceDatastoreAdapter
- Overrides:
getAddPrimaryKeyStatement
in classBaseDatastoreAdapter
- Parameters:
pk
- An object describing the primary key.factory
- Identifier factory- Returns:
- The text of the SQL statement.
-
getExistingIndexes
public ResultSet getExistingIndexes(Connection conn, String catalog, String schema, String table) throws SQLException
Provide the existing indexes in the database for the table. This is implemented if and only if the datastore has its own way of getting indexes. In this implementation we provide an alternate method for Oracle JDBC driver < 10.2.0.1.0 only. All other versions of Oracle will use the default. The schemaName MUST BE PROVIDED.- Specified by:
getExistingIndexes
in interfaceDatastoreAdapter
- Overrides:
getExistingIndexes
in classBaseDatastoreAdapter
- Parameters:
conn
- the JDBC connectioncatalog
- the catalog nameschema
- the schema name.table
- the table name- Returns:
- a ResultSet with the format @see DatabaseMetaData#getIndexInfo(java.lang.String, java.lang.String, java.lang.String, boolean, boolean)
- Throws:
SQLException
- if an error occurs
-
getDropTableStatement
public String getDropTableStatement(Table table)
Method to return the drop table statement for Oracle.- Specified by:
getDropTableStatement
in interfaceDatastoreAdapter
- Overrides:
getDropTableStatement
in classBaseDatastoreAdapter
- Parameters:
table
- The table- Returns:
- The statement text
-
getIdentityKeyword
public String getIdentityKeyword(org.datanucleus.store.StoreManager storeMgr)
Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).- Specified by:
getIdentityKeyword
in interfaceDatastoreAdapter
- Overrides:
getIdentityKeyword
in classBaseDatastoreAdapter
- Parameters:
storeMgr
- The Store Manager- Returns:
- The keyword for a column using auto-increment
-
getSequenceCreateStmt
public String getSequenceCreateStmt(String sequenceName, Integer min, Integer max, Integer start, Integer increment, Integer cacheSize)
Accessor for the sequence statement to create the sequence.- Specified by:
getSequenceCreateStmt
in interfaceDatastoreAdapter
- Overrides:
getSequenceCreateStmt
in classBaseDatastoreAdapter
- Parameters:
sequenceName
- Name of the sequencemin
- Minimum value for the sequencemax
- Maximum value for the sequencestart
- Start value for the sequenceincrement
- Increment value for the sequencecacheSize
- Cache size for the sequence- Returns:
- The statement for getting the next id from the sequence
-
getSequenceNextStmt
public String getSequenceNextStmt(String sequenceName)
Accessor for the statement for getting the next id from the sequence for this datastore.- Specified by:
getSequenceNextStmt
in interfaceDatastoreAdapter
- Overrides:
getSequenceNextStmt
in classBaseDatastoreAdapter
- Parameters:
sequenceName
- Name of the sequence- Returns:
- The statement for getting the next id for the sequence
-
newRDBMSColumnInfo
public RDBMSColumnInfo newRDBMSColumnInfo(ResultSet rs)
Method to create a column info for the current row. Overrides the dataType to cater for Oracle particularities.- Specified by:
newRDBMSColumnInfo
in interfaceDatastoreAdapter
- Overrides:
newRDBMSColumnInfo
in classBaseDatastoreAdapter
- Parameters:
rs
- ResultSet from DatabaseMetaData.getColumns()- Returns:
- column info
-
getTransactionIsolationForSchemaCreation
public int getTransactionIsolationForSchemaCreation()
Accessor for the transaction isolation level to use during schema creation.- Specified by:
getTransactionIsolationForSchemaCreation
in interfaceDatastoreAdapter
- Overrides:
getTransactionIsolationForSchemaCreation
in classBaseDatastoreAdapter
- Returns:
- The transaction isolation level for schema generation process
-
getColumns
public ResultSet getColumns(Connection conn, String catalog, String schema, String table, String columnNamePattern) throws SQLException
Accessor for table and column information for a catalog/schema in this datastore. An override for the DatabaseMetaData.getColumns() method call as referenced in superclass. The default Oracle-provided getColumns() method is VERY slow for large schemas, particularly due to REMARKS and COLUMN_DEF (column defaults) columns (outer-joins in data dictionary views) Note: This method DOES NOT return default column value (meta-data ResultSet column COLUMN_DEF) as this column causes MAJOR slowdown in meta-data retrieval performance.- Specified by:
getColumns
in interfaceDatastoreAdapter
- Overrides:
getColumns
in classBaseDatastoreAdapter
- Parameters:
conn
- Connection to usecatalog
- The catalog (null if none)schema
- The schema (null if none)table
- The table (null if all)columnNamePattern
- Col name(s) (null if all) NOT USED- Returns:
- ResultSet containing the table/column information
- Throws:
SQLException
- Thrown if an error occurs
-
getDatastoreDateStatement
public String getDatastoreDateStatement()
Accessor for a statement that will return the statement to use to get the datastore date.- Specified by:
getDatastoreDateStatement
in interfaceDatastoreAdapter
- Overrides:
getDatastoreDateStatement
in classBaseDatastoreAdapter
- Returns:
- SQL statement to get the datastore date
-
getOrderString
public String getOrderString(org.datanucleus.store.StoreManager storeMgr, String orderString, SQLExpression sqlExpr)
Convenience method to allow adaption of an ordering string before applying it. This is useful where the datastore accepts some conversion adapter around the ordering column for example.- Specified by:
getOrderString
in interfaceDatastoreAdapter
- Overrides:
getOrderString
in classBaseDatastoreAdapter
- Parameters:
storeMgr
- StoreManagerorderString
- The basic ordering stringsqlExpr
- The sql expression being represented here- Returns:
- The adapted ordering string
-
isStatementTimeout
public boolean isStatementTimeout(SQLException sqle)
Description copied from class:BaseDatastoreAdapter
return whether this exception represents a timed out statement.- Specified by:
isStatementTimeout
in interfaceDatastoreAdapter
- Overrides:
isStatementTimeout
in classBaseDatastoreAdapter
- Parameters:
sqle
- the exception- Returns:
- whether it is a timeout
-
validToSelectMappingInStatement
public boolean validToSelectMappingInStatement(SelectStatement stmt, JavaTypeMapping m)
Method to return if it is valid to select the specified mapping for the specified statement for this datastore adapter. Sometimes, dependent on the type of the column(s), and what other components are present in the statement, it may be invalid to select the mapping. This implementation returns true, so override in database-specific subclass as required.- Specified by:
validToSelectMappingInStatement
in interfaceDatastoreAdapter
- Overrides:
validToSelectMappingInStatement
in classBaseDatastoreAdapter
- Parameters:
stmt
- The statementm
- The mapping that we want to select- Returns:
- Whether it is valid
-
getRangeByRowNumberColumn2
public String getRangeByRowNumberColumn2()
Description copied from class:BaseDatastoreAdapter
Method to return the column name to use when handling ranges via a rownumber on the select using the second method (Oracle). Defaults to an empty string (not supported).- Specified by:
getRangeByRowNumberColumn2
in interfaceDatastoreAdapter
- Overrides:
getRangeByRowNumberColumn2
in classBaseDatastoreAdapter
- Returns:
- The row number column.
-
getSQLOperationClass
public Class getSQLOperationClass(String operationName)
Description copied from interface:DatastoreAdapter
Accessor for the SQLOperation class for the specified operation (if available for this datastore).- Specified by:
getSQLOperationClass
in interfaceDatastoreAdapter
- Overrides:
getSQLOperationClass
in classBaseDatastoreAdapter
- Parameters:
operationName
- operation name- Returns:
- SQLOperation class (or null if none available)
-
getSQLMethodClass
public Class getSQLMethodClass(String className, String methodName, org.datanucleus.ClassLoaderResolver clr)
Description copied from interface:DatastoreAdapter
Accessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).- Specified by:
getSQLMethodClass
in interfaceDatastoreAdapter
- Overrides:
getSQLMethodClass
in classBaseDatastoreAdapter
- Parameters:
className
- Name of the class (or null if this is a STATIC method)methodName
- Method nameclr
- ClassLoader resolver, in case className is a subclass of a supported type- Returns:
- The SQLMethod class (or null if not defined for this datastore).
-
getInsertStatementForNoColumns
public String getInsertStatementForNoColumns(Table table)
Description copied from class:BaseDatastoreAdapter
Method to return the INSERT statement to use when inserting into a table that has no columns specified. This is the case when we have a single column in the table and that column is autoincrement/identity (and so is assigned automatically in the datastore).- Specified by:
getInsertStatementForNoColumns
in interfaceDatastoreAdapter
- Overrides:
getInsertStatementForNoColumns
in classBaseDatastoreAdapter
- Parameters:
table
- The table- Returns:
- The statement for the INSERT
-
loadColumnMappings
protected void loadColumnMappings(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr)
Load all datastore mappings for this RDBMS database.- Overrides:
loadColumnMappings
in classBaseDatastoreAdapter
- Parameters:
mgr
- the PluginManagerclr
- the ClassLoaderResolver
-
-