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 StringOJDBC_DRIVER_NAMEWhat the official Oracle JDBC driver uses to identify itself.static StringORACLE_10_RESERVED_WORDSA string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle10gstatic StringORACLE_8_RESERVED_WORDSA string containing the list of Oracle keywords This list is normally obtained dynamically from the driver using DatabaseMetaData.getSQLKeywords() Based on database Oracle8static StringORACLE_9_RESERVED_WORDSA 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 StringgetAddPrimaryKeyStatement(PrimaryKey pk, IdentifierFactory factory)Returns the appropriate SQL to add a primary key to its table.StringgetCatalogName(Connection conn)Accessor for the Catalog Name for this datastore.ResultSetgetColumns(Connection conn, String catalog, String schema, String table, String columnNamePattern)Accessor for table and column information for a catalog/schema in this datastore.StringgetCreateDatabaseStatement(String catalogName, String schemaName)Method to return the statement necessary to create a database with this RDBMS.StringgetDatastoreDateStatement()Accessor for a statement that will return the statement to use to get the datastore date.StringgetDropDatabaseStatement(String catalogName, String schemaName)Method to return the statement necessary to drop a database with this RDBMS.StringgetDropTableStatement(Table table)Method to return the drop table statement for Oracle.ResultSetgetExistingIndexes(Connection conn, String catalog, String schema, String table)Provide the existing indexes in the database for the table.StringgetIdentityKeyword(org.datanucleus.store.StoreManager storeMgr)Accessor for the auto-increment keyword for generating DDLs (CREATE TABLEs...).StringgetInsertStatementForNoColumns(Table table)Method to return the INSERT statement to use when inserting into a table that has no columns specified.MappingManagergetMappingManager(RDBMSStoreManager storeMgr)Accessor for a MappingManager suitable for use with this datastore adapter.StringgetOrderString(org.datanucleus.store.StoreManager storeMgr, String orderString, SQLExpression sqlExpr)Convenience method to allow adaption of an ordering string before applying it.StringgetRangeByRowNumberColumn2()Method to return the column name to use when handling ranges via a rownumber on the select using the second method (Oracle).StringgetSchemaName(Connection conn)Accessor for the Schema Name for this datastore.StringgetSequenceCreateStmt(String sequenceName, Integer min, Integer max, Integer start, Integer increment, Integer cacheSize)Accessor for the sequence statement to create the sequence.StringgetSequenceNextStmt(String sequenceName)Accessor for the statement for getting the next id from the sequence for this datastore.ClassgetSQLMethodClass(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).ClassgetSQLOperationClass(String operationName)Accessor for the SQLOperation class for the specified operation (if available for this datastore).StringgetSurrogateForEmptyStrings()Some databases, Oracle, treats an empty string (0 length) equals nullintgetTransactionIsolationForSchemaCreation()Accessor for the transaction isolation level to use during schema creation.StringgetVendorID()Accessor for the vendor idvoidinitialiseTypes(org.datanucleus.store.schema.StoreSchemaHandler handler, org.datanucleus.store.connection.ManagedConnection mconn)Initialise the types for this datastore.booleanisStatementTimeout(SQLException sqle)return whether this exception represents a timed out statement.protected voidloadColumnMappings(org.datanucleus.plugin.PluginManager mgr, org.datanucleus.ClassLoaderResolver clr)Load all datastore mappings for this RDBMS database.RDBMSColumnInfonewRDBMSColumnInfo(ResultSet rs)Method to create a column info for the current row.SQLTypeInfonewSQLTypeInfo(ResultSet rs)Create a new SQL type info from the current row of the passed ResultSet.booleanvalidToSelectMappingInStatement(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:
initialiseTypesin interfaceDatastoreAdapter- Overrides:
initialiseTypesin classBaseDatastoreAdapter- Parameters:
handler- SchemaHandler that we initialise the types formconn- Managed connection to use
-
newSQLTypeInfo
public SQLTypeInfo newSQLTypeInfo(ResultSet rs)
Description copied from interface:DatastoreAdapterCreate 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:
newSQLTypeInfoin interfaceDatastoreAdapter- Overrides:
newSQLTypeInfoin 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:
getMappingManagerin interfaceDatastoreAdapter- Overrides:
getMappingManagerin classBaseDatastoreAdapter- Parameters:
storeMgr- The StoreManager- Returns:
- the MappingManager
-
getVendorID
public String getVendorID()
Accessor for the vendor id- Specified by:
getVendorIDin interfaceDatastoreAdapter- Overrides:
getVendorIDin classBaseDatastoreAdapter- Returns:
- The Oracle vendor id
-
getSurrogateForEmptyStrings
public String getSurrogateForEmptyStrings()
Some databases, Oracle, treats an empty string (0 length) equals null- Specified by:
getSurrogateForEmptyStringsin interfaceDatastoreAdapter- Overrides:
getSurrogateForEmptyStringsin 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:BaseDatastoreAdapterAccessor for the Catalog Name for this datastore.- Specified by:
getCatalogNamein interfaceDatastoreAdapter- Overrides:
getCatalogNamein 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:BaseDatastoreAdapterAccessor for the Schema Name for this datastore.- Specified by:
getSchemaNamein interfaceDatastoreAdapter- Overrides:
getSchemaNamein 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:DatastoreAdapterMethod to return the statement necessary to create a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
getCreateDatabaseStatementin interfaceDatastoreAdapter- Overrides:
getCreateDatabaseStatementin 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:DatastoreAdapterMethod to return the statement necessary to drop a database with this RDBMS. Note that some RDBMS don't support this.- Specified by:
getDropDatabaseStatementin interfaceDatastoreAdapter- Overrides:
getDropDatabaseStatementin 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:BaseDatastoreAdapterReturns 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:
getAddPrimaryKeyStatementin interfaceDatastoreAdapter- Overrides:
getAddPrimaryKeyStatementin 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:
getExistingIndexesin interfaceDatastoreAdapter- Overrides:
getExistingIndexesin 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:
getDropTableStatementin interfaceDatastoreAdapter- Overrides:
getDropTableStatementin 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:
getIdentityKeywordin interfaceDatastoreAdapter- Overrides:
getIdentityKeywordin 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:
getSequenceCreateStmtin interfaceDatastoreAdapter- Overrides:
getSequenceCreateStmtin 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:
getSequenceNextStmtin interfaceDatastoreAdapter- Overrides:
getSequenceNextStmtin 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:
newRDBMSColumnInfoin interfaceDatastoreAdapter- Overrides:
newRDBMSColumnInfoin 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:
getTransactionIsolationForSchemaCreationin interfaceDatastoreAdapter- Overrides:
getTransactionIsolationForSchemaCreationin 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:
getColumnsin interfaceDatastoreAdapter- Overrides:
getColumnsin 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:
getDatastoreDateStatementin interfaceDatastoreAdapter- Overrides:
getDatastoreDateStatementin 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:
getOrderStringin interfaceDatastoreAdapter- Overrides:
getOrderStringin 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:BaseDatastoreAdapterreturn whether this exception represents a timed out statement.- Specified by:
isStatementTimeoutin interfaceDatastoreAdapter- Overrides:
isStatementTimeoutin 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:
validToSelectMappingInStatementin interfaceDatastoreAdapter- Overrides:
validToSelectMappingInStatementin 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:BaseDatastoreAdapterMethod 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:
getRangeByRowNumberColumn2in interfaceDatastoreAdapter- Overrides:
getRangeByRowNumberColumn2in classBaseDatastoreAdapter- Returns:
- The row number column.
-
getSQLOperationClass
public Class getSQLOperationClass(String operationName)
Description copied from interface:DatastoreAdapterAccessor for the SQLOperation class for the specified operation (if available for this datastore).- Specified by:
getSQLOperationClassin interfaceDatastoreAdapter- Overrides:
getSQLOperationClassin 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:DatastoreAdapterAccessor for the SQLMethod class for the query invocation of specified class + method name (if available for this datastore).- Specified by:
getSQLMethodClassin interfaceDatastoreAdapter- Overrides:
getSQLMethodClassin 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:BaseDatastoreAdapterMethod 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:
getInsertStatementForNoColumnsin interfaceDatastoreAdapter- Overrides:
getInsertStatementForNoColumnsin 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:
loadColumnMappingsin classBaseDatastoreAdapter- Parameters:
mgr- the PluginManagerclr- the ClassLoaderResolver
-
-