Package org.apache.openjpa.jdbc.sql
Class DBDictionary
java.lang.Object
org.apache.openjpa.jdbc.sql.DBDictionary
- All Implemented Interfaces:
JoinSyntaxes
,Configurable
,IdentifierConfiguration
,ConnectionDecorator
,LoggingConnectionDecorator.SQLWarningHandler
- Direct Known Subclasses:
AbstractDB2Dictionary
,AbstractSQLServerDictionary
,AccessDictionary
,CacheDictionary
,EmpressDictionary
,FirebirdDictionary
,FoxProDictionary
,H2Dictionary
,HerdDBDictionary
,HSQLDictionary
,InformixDictionary
,IngresDictionary
,InterbaseDictionary
,JDataStoreDictionary
,MariaDBDictionary
,MaxDBDictionary
,MySQLDictionary
,OracleDictionary
,PointbaseDictionary
,PostgresDictionary
,SolidDBDictionary
public class DBDictionary
extends Object
implements Configurable, ConnectionDecorator, JoinSyntaxes, LoggingConnectionDecorator.SQLWarningHandler, IdentifierConfiguration
Class which allows the creation of SQL dynamically, in a
database agnostic fashion. Subclass for the nuances of different data stores.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
static class
Used by some mappings to represent data that has already been serialized so that we don't have to serialize multiple times. -
Field Summary
Modifier and TypeFieldDescriptionprotected Map<String,
StoredProcedure> protected ProxyManager
boolean
boolean
int
int
protected BooleanRepresentation
Defines howBoolean
andboolean
values get represented in OpenJPA.protected static final int
int
int
protected JDBCConfiguration
protected boolean
static final String
static final String
static final String
boolean
int
Default amount of digits for fractional Types.int
Attention, while this is named datePrecision it actually only get used for Timestamp handling!protected static final int
protected String
boolean
boolean
set of types that might have an optional fraction (sub-second) part.boolean
int
boolean
Whether an index is generated for a relation that is also a foreign key.reservedWordSet subset that CANNOT be used as valid column names (i.e., without surrounding them with double-quotes).protected boolean
protected boolean
int
protected Log
int
int
int
int
int
int
int
int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
int
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
Deprecated.Use 'dateMillisecondBehavior' instead.static final String
static final String
static final String
protected static final int
If a native query begins with any of the values found here then it will be treated as a select statement.boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
Some Databases append whitespace after the schema nameboolean
protected static final int
boolean
boolean
boolean
boolean
boolean
boolean
Deprecated.boolean
boolean
boolean
boolean
static final String
static final String
Fields inherited from interface org.apache.openjpa.jdbc.sql.JoinSyntaxes
SYNTAX_DATABASE, SYNTAX_SQL92, SYNTAX_TRADITIONAL
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddCastAsType
(String func, Val val) add CAST for a function operator where operand is a paramvoid
addErrorCode
(int errorType, String errorCode) void
appendCast
(SQLBuffer buf, Object val, int type) Cast the specified value to the specified type.protected void
appendLength
(SQLBuffer buf, int type) protected void
appendNumericCast
(SQLBuffer buf, FilterValue val) Append SQL for the given numeric value to the buffer, casting as needed.protected void
appendSelect
(SQLBuffer selectSQL, Object elem, Select sel, int idx) Appendelem
toselectSQL
.protected void
appendSelectRange
(SQLBuffer buf, long start, long end, boolean subselect) If this dictionary can select ranges, use this method to append the range SQL.protected String
appendSize
(Column col, String typeName) Helper method to add size properties to the specified type.protected void
appendUpdates
(Select sel, JDBCStore store, SQLBuffer sql, Object[] params, Map updateParams, boolean allowAlias) void
appendXmlComparison
(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs, boolean lhsxml, boolean rhsxml) If this dictionary supports XML type, use this method to append xml predicate.int
applyRange
(Select select, int count) void
assertSupport
(boolean feature, String property) Assert that the given dictionary flag is true.protected void
calculateValue
(Val val, Select sel, ExpContext ctx, ExpState state, Path path, ExpState pathState) This method is to provide override for non-JDBC or JDBC-like implementation of calculating value.boolean
canOuterJoin
(int syntax, ForeignKey fk) Returns if the given foreign key can be eagerly loaded using other joins.void
closeDataSource
(DataSource dataSource) Closes the specifiedDataSource
and releases any resources associated with it.protected ForeignKey
combineForeignKey
(Map<ForeignKey.FKMapKey, ForeignKey> fkMap, ForeignKey fk) Combines partial foreign keys into singular keyprotected StringBuilder
comment
(StringBuilder buf, String comment) void
comparison
(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs) Append a comparison.protected void
Configures the naming rules for this dictionary.void
This method is called when the dictionary first sees any connection.convertSchemaCase
(String objectName) Convert the specified schema name to a name that the database will be able to understand.convertSchemaCase
(DBIdentifier objectName) Convert the specified schema name to a name that the database will be able to understand.protected long
copy
(InputStream in, OutputStream out) protected long
void
createIndexIfNecessary
(Schema schema, String table, Column pkColumn) Deprecated.void
createIndexIfNecessary
(Schema schema, DBIdentifier table, Column pkColumn) decorate
(Connection conn) Decorate the given connection if needed.void
deleteStream
(JDBCStore store, Select sel) boolean
Returns true if global name delimiting is enabled.void
Invoked upon completion of bean property configuration for this object.protected ResultSet
executeQuery
(Connection conn, PreparedStatement stmnt, String sql) This method is to provide override for non-JDBC or JDBC-like implementation of executing query.fromDBName
(String name, DBIdentifier.DBIdentifierType id) String[]
getAddColumnSQL
(Column column) Return a series of SQL statements to add the given column to its table.String[]
Return a series of SQL statements to add the given foreign key to its table.String[]
Return a series of SQL statements to add the given primary key to its table.Convert the specified column of the SQL ResultSet to the proper java type.getAsciiStream
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.int
getBatchFetchSize
(int batchFetchSize) int
Return the batchLimitint
Return batched statements update success countgetBigDecimal
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.getBigInteger
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.getBinaryStream
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.Convert the specified column of the SQL ResultSet to the proper java type.getBlobObject
(ResultSet rs, int column, JDBCStore store) Convert the specified column of the SQL ResultSet to the proper java type.boolean
getBoolean
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.byte
Convert the specified column of the SQL ResultSet to the proper java type.byte[]
Convert the specified column of the SQL ResultSet to the proper java type.getCalendar
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.getCastFunction
(Val val, String func) Attach CAST to the current function if necessarygetCastFunction
(Val val, String func, Column col) Return the correct CAST function syntax.protected String
getCatalogNameForMetadata
(String catalogName) Returns the catalog name that will be used for obtaining information fromDatabaseMetaData
.protected String
getCatalogNameForMetadata
(DBIdentifier catalogName) Returns the catalog name that will be used for obtaining information fromDatabaseMetaData
.char
Convert the specified column of the SQL ResultSet to the proper java type.getCharacterStream
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.Convert the specified column of the SQL ResultSet to the proper java type.getClobString
(ResultSet rs, int column) Convert the specified column of the SQL ResultSet to the proper java type.getColumnDBName
(Column column) getColumnIdentifier
(Column column) Returns the name of the column using database specific delimiters.protected String
getColumnNameForMetadata
(String columnName) Returns the column name that will be used for obtaining information fromDatabaseMetaData
.protected String
getColumnNameForMetadata
(DBIdentifier columnName) Returns the column name that will be used for obtaining information fromDatabaseMetaData
.Column[]
getColumns
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, String columnName, Connection conn) Deprecated.Column[]
getColumns
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, DBIdentifier columnName, Connection conn) Reflect on the schema to find columns matching the given table and column patterns.Returns a key that can be used to determine whether conversion should take place.String[]
getCreateIndexSQL
(Index index) Return a series of SQL statements to create the given index.String[]
Return a series of SQL statements to create the given sequence.String[]
getCreateTableSQL
(Table table) Return a series of SQL statements to create the given table, complete with columns.String[]
getCreateTableSQL
(Table table, SchemaGroup group) Return a series of SQL statements to create the given table, complete with columns.Convert the specified column of the SQL ResultSet to the proper java type.Convert the specified column of the SQL ResultSet to the proper java type.protected int
getDateFractionDigits
(Column col, String typeName) Only get's used if no explicit scale is used (@{code @Column(scale=0)} which is the default).protected String
getDeclareColumnSQL
(Column col, boolean alter) Return the declaration SQL for the given column.Gets the default naming ruleString[]
getDeleteTableContentsSQL
(Table[] tables, Connection conn) Create SQL to delete the contents of the specified tables.protected SQLBuffer
getDeleteTargets
(Select sel) Returns the case that is used when delimiting.boolean
double
Convert the specified column of the SQL ResultSet to the proper java type.String[]
getDropColumnSQL
(Column column) Return a series of SQL statements to drop the given column from its table.String[]
getDropForeignKeySQL
(ForeignKey fk, Connection conn) Return a series of SQL statements to drop the given foreign key from its table.String[]
getDropIndexSQL
(Index index) Return a series of SQL statements to drop the given index.String[]
Return a series of SQL statements to drop the given primary key from its table.String[]
Return a series of SQL statements to drop the given sequence.String[]
getDropTableSQL
(Table table) Return a series of SQL statements to drop the given table.float
Convert the specified column of the SQL ResultSet to the proper java type.protected String
Return the declaration SQL for the given foreign key, or null if it is not supported.protected String
getForUpdateClause
(JDBCFetchConfiguration fetch, boolean isForUpdate, Select sel) Get the update clause for the query based on the updateClause and isolationLevel hintsprotected SQLBuffer
Return the portion of the select statement between the FROM keyword and the WHERE keyword.protected SQLBuffer
getFromSelect
(Select sel, boolean forUpdate) Return the FROM clause for a select that selects from a tmp table created by an inner select.getFullIdentifier
(Table table, boolean logical) Returns the full name of the table, including the schema (delimited bycatalogSeparator
).getFullName
(Index index) Returns the full name of the index, including the schema (delimited by the result ofcatalogSeparator
).getFullName
(Sequence seq) Returns the full name of the sequence, including the schema (delimited by the result ofcatalogSeparator
).getFullName
(Table table, boolean logical) getGeneratedKey
(Column col, Connection conn) Return the last generated value for the given column.protected String
Return the sequence name used by databases for the given autoassigned column.protected String
getGenKeySeqName
(String query, Column col) Returns the value used to concatenate multiple names together.Returns the value used to delimit between individual names.<T> IdentifierRule
getIdentifierRule
(T t) Returns a naming rule or null if the rule is not found.Returns all naming rulesgetImportedKeys
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) Deprecated.getImportedKeys
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn, boolean partialKeys) Deprecated.getImportedKeys
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) Reflect on the schema to return foreign keys imported by the given table pattern.getImportedKeys
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn, boolean partialKeys) Reflect on the schema to return full foreign keys imported by the given table pattern.Index[]
getIndexInfo
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, boolean unique, boolean approx, Connection conn) Deprecated.Index[]
getIndexInfo
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, boolean unique, boolean approx, Connection conn) Reflect on the schema to find indexes matching the given table pattern.int
Convert the specified column of the SQL ResultSet to the proper java type.Return the subset of the words in reservedWordSet that cannot be used as valid column names for the current DB.getIsNotNullSQL
(String colAlias, int colType) getIsNullSQL
(String colAlias, int colType) int
getJDBCType
(int metaTypeCode, boolean lob) int
getJDBCType
(int metaTypeCode, boolean lob, int precis, int scale) int
getJDBCType
(int metaTypeCode, boolean lob, int precis, int scale, boolean xml) protected Object
This method is to provide override for non-JDBC or JDBC-like implementation of getting key from the result set.Returns the leading delimiter value to use when delimiting a name.getLOBStream
(JDBCStore store, ResultSet rs, int column) getLocalDate
(ResultSet rs, int column) Retrieve the specified column of the SQL ResultSet to the properLocalDate
java type.getLocalDateTime
(ResultSet rs, int column) Retrieve the specified column of the SQL ResultSet to the properLocalDateTime
java type.Convert the specified column of the SQL ResultSet to the proper java type.getLocalTime
(ResultSet rs, int column) Retrieve the specified column of the SQL ResultSet to the properLocalTime
java type.getLog()
long
Convert the specified column of the SQL ResultSet to the proper java type.final int
Gets major version of the database server.getMarkerForInsertUpdate
(Column col, Object val) Return parameter marker for INSERT and UPDATE statements.Default behavior is ROUNDfinal int
Gets minor version of the database server.Returns the naming utility used by this dictionary instanceReturns the specified column value as an unknown numeric type; we try from the most generic to the least generic.Convert the specified column of the SQL ResultSet to the proper java type.getOffsetDateTime
(ResultSet rs, int column) Retrieve the specified column of the SQL ResultSet to the properOffsetDateTime
java type.getOffsetTime
(ResultSet rs, int column) Retrieve the specified column of the SQL ResultSet to the properOffsetTime
java type.Return a SQL string to act as a placeholder for the given column.int
getPreferredType
(int type) Return the preferredTypes
type for the given one.protected String
Return the declaration SQL for the given primary key.getPrimaryKeys
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) Deprecated.getPrimaryKeys
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) Reflect on the schema to find primary keys for the given table pattern.protected PrimaryKey[]
getPrimaryKeysFromBestRowIdentifier
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) Deprecated.protected PrimaryKey[]
getPrimaryKeysFromBestRowIdentifier
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) Reflect on the schema to find primary keys for the given table pattern.protected PrimaryKey[]
getPrimaryKeysFromGetPrimaryKeys
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) Deprecated.protected PrimaryKey[]
getPrimaryKeysFromGetPrimaryKeys
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) Reflect on the schema to find primary keys for the given table pattern.Convert the specified column of the SQL ResultSet to the proper java type.Return DB specific schemaCaseprotected String
getSchemaNameForMetadata
(String schemaName) Returns the schema name that will be used for obtaining information fromDatabaseMetaData
.protected String
getSchemaNameForMetadata
(DBIdentifier schemaName) Returns the schema name that will be used for obtaining information fromDatabaseMetaData
.Return the "SELECT" operation clause, adding any available hints, etc.protected SQLBuffer
getSelects
(Select sel, boolean distinctIdentifiers, boolean forUpdate) Return the portion of the select statement between the SELECT keyword and the FROM keyword.protected Collection<String>
protected Sequence[]
getSequence
(ResultSet rs) This method is to provide override for non-JDBC or JDBC-like implementation of getting sequence from the result set.Sequence[]
getSequences
(DatabaseMetaData meta, String catalog, String schemaName, String sequenceName, Connection conn) Deprecated.Sequence[]
getSequences
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier sequenceName, Connection conn) protected String
getSequencesSQL
(String schemaName, String sequenceName) Deprecated.protected String
getSequencesSQL
(DBIdentifier schemaName, DBIdentifier sequenceName) short
Convert the specified column of the SQL ResultSet to the proper java type.getStoredProcedure
(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schema, String procedure) Gets the metadata of the stored procedure by the given name either from the cached version or by enquiring the database.Convert the specified column of the SQL ResultSet to the proper java type.boolean
Returns true if delimiting is supportedboolean
protected String
getTableNameForMetadata
(String tableName) Returns the table name that will be used for obtaining information fromDatabaseMetaData
.protected String
getTableNameForMetadata
(DBIdentifier tableName) Returns the table name that will be used for obtaining information fromDatabaseMetaData
.Table[]
getTables
(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) Deprecated.not used by openjpa internally anymoreTable[]
getTables
(DatabaseMetaData meta, DBIdentifier sqlCatalog, DBIdentifier sqlSchemaName, DBIdentifier sqlTableName, Connection conn) Reflect on the schema to find tables matching the given name pattern.Convert the specified column of the SQL ResultSet to the proper java type.getTimestamp
(ResultSet rs, int column, Calendar cal) Convert the specified column of the SQL ResultSet to the proper java type.Returns the trailing delimiter value to use when delimiting a name.boolean
getTypeName
(int type) Returns the type name for the specific constant as defined byTypes
.getTypeName
(Column col) Return the preferred database type name for the given column's type fromTypes
.protected String
Return the declaration SQL for the given unique constraint.getValidColumnName
(String name, Table table) Deprecated.getValidColumnName
(String name, Table table, boolean checkForUniqueness) Deprecated.getValidColumnName
(DBIdentifier name, Table table) Make any necessary changes to the given column name to make it valid for the current DB.getValidColumnName
(DBIdentifier name, Table table, boolean checkForUniqueness) Make any necessary changes to the given column name to make it valid for the current DB.getValidForeignKeyName
(String name, Table table, Table toTable) Deprecated.getValidForeignKeyName
(DBIdentifier name, Table table, Table toTable) Make any necessary changes to the given foreign key name to make it valid for the current DB.getValidIndexName
(String name, Table table) Deprecated.getValidIndexName
(DBIdentifier name, Table table) Make any necessary changes to the given index name to make it valid for the current DB.getValidPrimaryKeyName
(String name, Table table) Make any necessary changes to the given primary key name to make it valid for the current DB.getValidSequenceName
(String name, Schema schema) Deprecated.getValidSequenceName
(DBIdentifier name, Schema schema) Make any necessary changes to the given sequence name to make it valid for the current DB.getValidTableName
(String name, Schema schema) Deprecated.getValidTableName
(DBIdentifier name, Schema schema) Make any necessary changes to the given table name to make it valid for the current DB.getValidUniqueName
(String name, Table table) Deprecated.getValidUniqueName
(DBIdentifier name, Table table) Make any necessary changes to the given unique constraint name to make it valid for the current DB.getVersionColumn
(Column column, String tableAlias) Return version column namegetVersionColumn
(Column column, DBIdentifier tableAlias) protected SQLBuffer
Return the WHERE portion of the select statement, or null if no where conditions.void
handleWarning
(SQLWarning warning) Implementation of theLoggingConnectionDecorator.SQLWarningHandler
interface that allows customization of the actions to perform when aSQLWarning
occurs at any point on aConnection
,Statement
, orResultSet
.void
indexOf
(SQLBuffer buf, FilterValue str, FilterValue find, FilterValue start) Invoke this database's indexOf function.void
void
insertClobForStreamingLoad
(Row row, Column col, Object ob) protected String
insertSize
(String typeName, String size) Helper method that inserts a size clause for a given SQL type.boolean
isFatalException
(int subtype, SQLException ex) Determine if the given SQL Exception is fatal or recoverable (such as a timeout).boolean
boolean
Determine whether the providedsql
may be treated as a select statement on this database.boolean
isSystemIndex
(String name, Table table) Deprecated.boolean
isSystemIndex
(DBIdentifier name, Table table) This method is used to filter system indexes from database metadata.boolean
isSystemSequence
(String name, String schema, boolean targetSchema) Deprecated.boolean
isSystemSequence
(DBIdentifier name, DBIdentifier schema, boolean targetSchema) This method is used to filter system sequences from database metadata.boolean
isSystemSequence
(DBIdentifier name, DBIdentifier schema, boolean targetSchema, Connection conn) This method is used to filter system sequences from database metadata.boolean
isSystemTable
(String name, String schema, boolean targetSchema) Deprecated.boolean
isSystemTable
(DBIdentifier name, DBIdentifier schema, boolean targetSchema) This method is used to filter system tables from database metadata.protected boolean
isUsingLimit
(long end) protected boolean
isUsingOffset
(long start) protected boolean
isUsingOrderBy
(SQLBuffer sql) protected boolean
isUsingRange
(long start, long end) protected String
makeNameValid
(String name, NameSet set, int maxLen, int nameType) Deprecated.protected String
makeNameValid
(String name, NameSet set, int maxLen, int nameType, boolean checkForUniqueness) Shortens the given name to the given maximum length, then checks that it is not a reserved word.protected DBIdentifier
makeNameValid
(DBIdentifier name, NameSet set, int maxLen, int nameType) Shortens the given name to the given maximum length, then checks that it is not a reserved word.protected DBIdentifier
makeNameValid
(DBIdentifier name, NameSet set, int maxLen, int nameType, boolean checkForUniqueness) Shortens the given name to the given maximum length, then checks that it is not a reserved word.protected int
matchErrorState
(Map<Integer, Set<String>> errorStates, SQLException ex) Determine the more appropriate type of store exception by matching the SQL Error State of the the given SQLException to the given Error States categorized by error types.void
mathFunction
(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs) Append the numeric parts of a mathematical function.boolean
needsToCreateIndex
(Index idx, Table table) boolean
needsToCreateIndex
(Index idx, Table table, Unique[] uniques) protected Column
Create a new column from the information in the schema metadata.protected ForeignKey
newForeignKey
(ResultSet fkMeta) Create a new foreign key from the information in the schema metadata.protected Index
Create a new index from the information in the schema metadata.protected PrimaryKey
newPrimaryKey
(ResultSet pkMeta) Create a new primary key from the information in the schema metadata.protected Sequence
newSequence
(ResultSet sequenceMeta) Create a new sequence from the information in the schema metadata.newStoreException
(String msg, SQLException[] causes, Object failed) Return a new exception that wrapscauses
.protected Table
Create a new table from the information in the schema metadata.protected PreparedStatement
prepareStatement
(Connection conn, String sql) This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.void
Invoke the JDK 1.4setBytes
method on the given BLOB object.void
Invoke the JDK 1.4setCharacterStream
method on the given CLOB object.void
Invoke the JDK 1.4setString
method on the given CLOB object.void
refSchemaComponents
(Table table) Increment the reference count of any table components that this dictionary adds that are not used by mappings.byte[]
Return the serialized bytes for the given object.void
setArray
(PreparedStatement stmnt, int idx, Array val, Column col) Set the given value as a parameter to the statement.void
setAsciiStream
(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) Set the given value as a parameter to the statement.void
setBatchLimit
(int limit) Set the batchLimit valuevoid
setBigDecimal
(PreparedStatement stmnt, int idx, BigDecimal val, Column col) Set the given value as a parameter to the statement.void
setBigInteger
(PreparedStatement stmnt, int idx, BigInteger val, Column col) Set the given value as a parameter to the statement.void
setBinaryStream
(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) Set the given value as a parameter to the statement.void
setBlob
(PreparedStatement stmnt, int idx, Blob val, Column col) Set the given value as a parameter to the statement.void
setBlobObject
(PreparedStatement stmnt, int idx, Object val, Column col, JDBCStore store) Set the given value as a parameter to the statement.void
setBoolean
(PreparedStatement stmnt, int idx, boolean val, Column col) Set the given value as a parameter to the statement.void
setBooleanRepresentation
(String booleanRepresentationKey) void
setByte
(PreparedStatement stmnt, int idx, byte val, Column col) Set the given value as a parameter to the statement.void
setBytes
(PreparedStatement stmnt, int idx, byte[] val, Column col) Set the given value as a parameter to the statement.void
setCalendar
(PreparedStatement stmnt, int idx, Calendar val, Column col) Set the given value as a parameter to the statement.void
setChar
(PreparedStatement stmnt, int idx, char val, Column col) Set the given value as a parameter to the statement.void
setCharacterStream
(PreparedStatement stmnt, int idx, Reader val, int length, Column col) Set the given value as a parameter to the statement.void
setClob
(PreparedStatement stmnt, int idx, Clob val, Column col) Set the given value as a parameter to the statement.void
setClobString
(PreparedStatement stmnt, int idx, String val, Column col) Set the given value as a parameter to the statement.void
Invoked prior to setting bean properties.void
setDate
(PreparedStatement stmnt, int idx, Date val, Calendar cal, Column col) Set the given value as a parameter to the statement.void
setDate
(PreparedStatement stmnt, int idx, Date val, Column col) Set the given value as a parameter to the statement.void
void
setDefaultSchemaName
(String defaultSchemaName) protected void
setDelimitedCase
(DatabaseMetaData metaData) void
setDelimitIdentifiers
(boolean delimitIds) void
setDouble
(PreparedStatement stmnt, int idx, double val, Column col) Set the given value as a parameter to the statement.void
setFloat
(PreparedStatement stmnt, int idx, float val, Column col) Set the given value as a parameter to the statement.void
setInt
(PreparedStatement stmnt, int idx, int val, Column col) Set the given value as a parameter to the statement.void
setJoinSyntax
(String syntax) Set the name of the join syntax to use: sql92, traditional, database.void
setLeadingDelimiter
(String delim) void
setLocalDate
(PreparedStatement stmnt, int idx, LocalDate val, Column col) Set the given LocalDate value as a parameter to the statement.void
setLocalDateTime
(PreparedStatement stmnt, int idx, LocalDateTime val, Column col) Set the given LocalTime value as a parameter to the statement.void
setLocale
(PreparedStatement stmnt, int idx, Locale val, Column col) Set the given value as a parameter to the statement.void
setLocalTime
(PreparedStatement stmnt, int idx, LocalTime val, Column col) Set the given LocalTime value as a parameter to the statement.void
setLong
(PreparedStatement stmnt, int idx, long val, Column col) Set the given value as a parameter to the statement.void
setMajorVersion
(int maj) Sets major version of the database server.void
setMinorVersion
(int min) Sets minor version of the database server.void
setNull
(PreparedStatement stmnt, int idx, int colType, Column col) Set null as a parameter to the statement.void
setNumber
(PreparedStatement stmnt, int idx, Number num, Column col) Set the given value as a parameter to the statement.void
setObject
(PreparedStatement stmnt, int idx, Object val, int colType, Column col) Set the given value as a parameter to the statement.void
setOffsetDateTime
(PreparedStatement stmnt, int idx, OffsetDateTime val, Column col) Set the given LocalTime value as a parameter to the statement.void
setOffsetTime
(PreparedStatement stmnt, int idx, OffsetTime val, Column col) Set the given LocalTime value as a parameter to the statement.void
setQueryTimeout
(PreparedStatement stmnt, int timeout) Provides the default validation handling of setting a query timeout.void
setRef
(PreparedStatement stmnt, int idx, Ref val, Column col) Set the given value as a parameter to the statement.void
setShort
(PreparedStatement stmnt, int idx, short val, Column col) Set the given value as a parameter to the statement.protected void
setStatementQueryTimeout
(PreparedStatement stmnt, int timeout) Allow subclasses to provide DB unique override implementations of setting query timeouts, while preserving the default timeout logic in the public setQueryTimeout method.void
setString
(PreparedStatement stmnt, int idx, String val, Column col) Set the given value as a parameter to the statement.void
setSupportsDelimitedIdentifiers
(boolean supportsDelimitedIds) void
setSupportsXMLColumn
(boolean b) void
setTime
(PreparedStatement stmnt, int idx, Time val, Calendar cal, Column col) Set the given value as a parameter to the statement.void
setTimeouts
(PreparedStatement stmnt, JDBCConfiguration conf, boolean forUpdate) FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts.void
setTimeouts
(PreparedStatement stmnt, JDBCFetchConfiguration fetch, boolean forUpdate) FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts.void
setTimestamp
(PreparedStatement stmnt, int idx, Timestamp val, Calendar cal, Column col) Set the given value as a parameter to the statement.void
setTrailingDelimiter
(String delim) void
setTrimSchemaName
(boolean trimSchemaName) void
setTyped
(PreparedStatement stmnt, int idx, Object val, Column col, int type, JDBCStore store) Set a column value into a prepared statement.void
setUnknown
(PreparedStatement stmt, int idx, Object val, Column col) Set a completely unknown parameter into a prepared statement.void
setUnknown
(PreparedStatement stmnt, int idx, Column col, Object val) Set a completely unknown parameter into a prepared statement.void
setXMLTypeEncoding
(String encoding) static String
Shorten the specified name to the specified target name.void
Invoked before bean property configuration is begun on this object.protected void
storageWarning
(Object orig, Object converted) Warn that a particular value could not be stored precisely.void
substring
(SQLBuffer buf, FilterValue str, FilterValue start, FilterValue length) Invoke this database's substring function.protected boolean
Whether or not this dictionary supports deferred foreign key constraints.protected boolean
Whether or not this dictionary supports deferred unique constraints.boolean
supportsDeleteAction
(int action) Whether this database supports the given foreign key delete action.boolean
Return true if the dictionary uses isolation level to compute the returned getForUpdateClause() SQL clause.boolean
supportsLocking
(Select sel) Returns true if a "FOR UPDATE" clause can be used for the specified Select object.boolean
supportsRandomAccessResultSet
(Select sel, boolean forUpdate) Return false if the given select requires a forward-only result set.boolean
supportsUpdateAction
(int action) Whether this database supports the given foreign key update action.protected SQLBuffer
toBulkOperation
(ClassMapping mapping, Select sel, JDBCStore store, Object[] params, Map updateParams) Returns the SQL for a bulk operation, either a DELETE or an UPDATE.toDBName
(DBIdentifier name) toDBName
(DBIdentifier name, boolean delimit) toDelete
(ClassMapping mapping, Select sel, Object[] params) Create a DELETE statement for the specified Select.toNativeJoin
(Join join) Use the given join instance to create SQL joining its tables in the database's native syntax.toOperation
(String op, SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, long start, long end, String forUpdateClause) Return the SQL for the given selecting operation.toOperation
(String op, SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, long start, long end, String forUpdateClause, boolean subselect) Return the SQL for the given selecting operation.toSelect
(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch) Create a SELECT statement in the proper join syntax for the given instance.toSelect
(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end) Combine the given components into a SELECT statement.toSelect
(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, boolean subselect, boolean checkTableForUpdate) protected SQLBuffer
toSelect
(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, boolean subselect, Select sel) Combine the given components into a SELECT statement.protected SQLBuffer
toSelect
(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, Select sel) Combine the given components into a SELECT statement.toSelectCount
(Select sel) Create a SELECT COUNT statement in the proper join syntax for the given instance.toSnakeCase
(String name) toSQL92Join
(Select sel, Join join, boolean forUpdate, boolean first) Use the given join instance to create SQL joining its tables in the SQL92 style.toTraditionalJoin
(Join join) Use the given join instance to create SQL joining its tables in the traditional style.void
updateBlob
(Select sel, JDBCStore store, InputStream is) void
updateClob
(Select sel, JDBCStore store, Reader reader) boolean
validateBatchProcess
(RowImpl row, Column[] autoAssign, OpenJPAStateManager sm, ClassMapping cmd) Validate the batch process.boolean
validateDBSpecificBatchProcess
(boolean disableBatch, RowImpl row, Column[] autoAssign, OpenJPAStateManager sm, ClassMapping cmd) Allow each Dictionary to validate its own batch process.protected boolean
versionEqualOrEarlierThan
(int maj, int min) protected boolean
versionEqualOrLaterThan
(int maj, int min) protected boolean
versionLaterThan
(int maj)
-
Field Details
-
VENDOR_OTHER
- See Also:
-
VENDOR_DATADIRECT
- See Also:
-
SCHEMA_CASE_UPPER
- See Also:
-
SCHEMA_CASE_LOWER
- See Also:
-
SCHEMA_CASE_PRESERVE
- See Also:
-
CONS_NAME_BEFORE
- See Also:
-
CONS_NAME_MID
- See Also:
-
CONS_NAME_AFTER
- See Also:
-
blobBufferSize
public int blobBufferSize -
clobBufferSize
public int clobBufferSize -
RANGE_POST_SELECT
protected static final int RANGE_POST_SELECT- See Also:
-
RANGE_PRE_DISTINCT
protected static final int RANGE_PRE_DISTINCT- See Also:
-
RANGE_POST_DISTINCT
protected static final int RANGE_POST_DISTINCT- See Also:
-
RANGE_POST_LOCK
protected static final int RANGE_POST_LOCK- See Also:
-
NANO
protected static final int NANO- See Also:
-
MICRO
protected static final int MICRO- See Also:
-
MILLI
protected static final int MILLI- See Also:
-
CENTI
protected static final int CENTI- See Also:
-
DECI
protected static final int DECI- See Also:
-
SEC
protected static final int SEC- See Also:
-
NAME_ANY
protected static final int NAME_ANY- See Also:
-
NAME_TABLE
protected static final int NAME_TABLE- See Also:
-
NAME_SEQUENCE
protected static final int NAME_SEQUENCE- See Also:
-
UNLIMITED
protected static final int UNLIMITED- See Also:
-
NO_BATCH
protected static final int NO_BATCH- See Also:
-
platform
-
databaseProductName
-
databaseProductVersion
-
driverVendor
-
createPrimaryKeys
public boolean createPrimaryKeys -
constraintNameMode
-
maxTableNameLength
public int maxTableNameLength -
maxColumnNameLength
public int maxColumnNameLength -
maxConstraintNameLength
public int maxConstraintNameLength -
maxIndexNameLength
public int maxIndexNameLength -
maxIndexesPerTable
public int maxIndexesPerTable -
supportsForeignKeys
public boolean supportsForeignKeys -
supportsParameterInSelect
public boolean supportsParameterInSelect -
supportsForeignKeysComposite
public boolean supportsForeignKeysComposite -
supportsUniqueConstraints
public boolean supportsUniqueConstraints -
supportsDeferredConstraints
public boolean supportsDeferredConstraints -
supportsRestrictDeleteAction
public boolean supportsRestrictDeleteAction -
supportsCascadeDeleteAction
public boolean supportsCascadeDeleteAction -
supportsNullDeleteAction
public boolean supportsNullDeleteAction -
supportsNullUniqueColumn
public boolean supportsNullUniqueColumn -
supportsDefaultDeleteAction
public boolean supportsDefaultDeleteAction -
supportsRestrictUpdateAction
public boolean supportsRestrictUpdateAction -
supportsCascadeUpdateAction
public boolean supportsCascadeUpdateAction -
supportsNullUpdateAction
public boolean supportsNullUpdateAction -
supportsDefaultUpdateAction
public boolean supportsDefaultUpdateAction -
supportsAlterTableWithAddColumn
public boolean supportsAlterTableWithAddColumn -
supportsAlterTableWithDropColumn
public boolean supportsAlterTableWithDropColumn -
supportsComments
public boolean supportsComments -
supportsGetGeneratedKeys
-
reservedWords
-
systemSchemas
-
systemTables
-
selectWords
-
fixedSizeTypeNames
-
schemaCase
-
javaToDbColumnNameProcessing
-
setStringRightTruncationOn
public boolean setStringRightTruncationOn -
fullResultCollectionInOrderByRelation
public boolean fullResultCollectionInOrderByRelation -
disableSchemaFactoryColumnTypeErrors
public boolean disableSchemaFactoryColumnTypeErrors -
disableAlterSeqenceIncrementBy
public boolean disableAlterSeqenceIncrementBy -
validationSQL
-
closePoolSQL
-
initializationSQL
-
joinSyntax
public int joinSyntax -
outerJoinClause
-
innerJoinClause
-
crossJoinClause
-
requiresConditionForCrossJoin
public boolean requiresConditionForCrossJoin -
forUpdateClause
-
tableForUpdateClause
-
distinctCountColumnSeparator
-
supportsSelectForUpdate
public boolean supportsSelectForUpdate -
supportsLockingWithDistinctClause
public boolean supportsLockingWithDistinctClause -
supportsLockingWithMultipleTables
public boolean supportsLockingWithMultipleTables -
supportsLockingWithOrderClause
public boolean supportsLockingWithOrderClause -
supportsLockingWithOuterJoin
public boolean supportsLockingWithOuterJoin -
supportsLockingWithInnerJoin
public boolean supportsLockingWithInnerJoin -
supportsLockingWithSelectRange
public boolean supportsLockingWithSelectRange -
supportsQueryTimeout
public boolean supportsQueryTimeout -
allowQueryTimeoutOnFindUpdate
public boolean allowQueryTimeoutOnFindUpdate -
simulateLocking
public boolean simulateLocking -
supportsSubselect
public boolean supportsSubselect -
supportsHaving
public boolean supportsHaving -
supportsSelectStartIndex
public boolean supportsSelectStartIndex -
supportsSelectEndIndex
public boolean supportsSelectEndIndex -
rangePosition
public int rangePosition -
requiresAliasForSubselect
public boolean requiresAliasForSubselect -
requiresTargetForDelete
public boolean requiresTargetForDelete -
allowsAliasInBulkClause
public boolean allowsAliasInBulkClause -
supportsMultipleNontransactionalResultSets
public boolean supportsMultipleNontransactionalResultSets -
requiresSearchStringEscapeForLike
public boolean requiresSearchStringEscapeForLike -
searchStringEscape
-
requiresCastForMathFunctions
public boolean requiresCastForMathFunctions -
requiresCastForComparisons
public boolean requiresCastForComparisons -
supportsModOperator
public boolean supportsModOperator -
supportsXMLColumn
public boolean supportsXMLColumn -
supportsCaseConversionForLob
public boolean supportsCaseConversionForLob -
reportsSuccessNoInfoOnBatchUpdates
public boolean reportsSuccessNoInfoOnBatchUpdates -
supportsSelectFromFinalTable
public boolean supportsSelectFromFinalTable -
supportsSimpleCaseExpression
public boolean supportsSimpleCaseExpression -
supportsGeneralCaseExpression
public boolean supportsGeneralCaseExpression -
useWildCardForCount
public boolean useWildCardForCount -
trimSchemaName
public boolean trimSchemaNameSome Databases append whitespace after the schema name -
castFunction
-
toLowerCaseFunction
-
toUpperCaseFunction
-
stringLengthFunction
-
bitLengthFunction
-
trimLeadingFunction
-
trimTrailingFunction
-
trimBothFunction
-
concatenateFunction
-
concatenateDelimiter
-
substringFunctionName
-
currentDateFunction
-
currentTimeFunction
-
currentTimestampFunction
-
dropTableSQL
-
storageLimitationsFatal
public boolean storageLimitationsFatal -
storeLargeNumbersAsStrings
public boolean storeLargeNumbersAsStrings -
storeCharsAsNumbers
public boolean storeCharsAsNumbers -
trimStringColumns
public boolean trimStringColumns -
useGetBytesForBlobs
public boolean useGetBytesForBlobs -
useSetBytesForBlobs
public boolean useSetBytesForBlobs -
useGetObjectForBlobs
public boolean useGetObjectForBlobs -
useGetStringForClobs
public boolean useGetStringForClobs -
useSetStringForClobs
public boolean useSetStringForClobs -
useJDBC4SetBinaryStream
public boolean useJDBC4SetBinaryStream -
maxEmbeddedBlobSize
public int maxEmbeddedBlobSize -
maxEmbeddedClobSize
public int maxEmbeddedClobSize -
inClauseLimit
public int inClauseLimit -
datePrecision
public int datePrecisionAttention, while this is named datePrecision it actually only get used for Timestamp handling! -
roundTimeToMillisec
Deprecated.Use 'dateMillisecondBehavior' instead. -
booleanRepresentation
Defines howBoolean
andboolean
values get represented in OpenJPA. Default toINT_10
. for backward compatibility. -
indexPhysicalForeignKeys
public boolean indexPhysicalForeignKeysWhether an index is generated for a relation that is also a foreign key. Some database systems (e.g. MySQL) will automatically create an index for a foreign key, others (e.g. Oracle, MS-SQL-Server) do not. See alsoMappingDefaultsImpl._indexPhysicalFK
which may disable this feature for backwards compatibility. -
characterColumnSize
public int characterColumnSize -
arrayTypeName
-
bigintTypeName
-
binaryTypeName
-
bitTypeName
-
blobTypeName
-
booleanTypeName
-
charTypeName
-
clobTypeName
-
dateTypeName
-
decimalTypeName
-
distinctTypeName
-
doubleTypeName
-
floatTypeName
-
integerTypeName
-
javaObjectTypeName
-
longVarbinaryTypeName
-
longVarcharTypeName
-
nullTypeName
-
numericTypeName
-
otherTypeName
-
realTypeName
-
refTypeName
-
smallintTypeName
-
structTypeName
-
timeTypeName
-
timestampTypeName
-
timeWithZoneTypeName
-
timestampWithZoneTypeName
-
tinyintTypeName
-
varbinaryTypeName
-
varcharTypeName
-
xmlTypeName
-
xmlTypeEncoding
-
getStringVal
-
useSchemaName
public boolean useSchemaName -
tableTypes
-
supportsSchemaForGetTables
public boolean supportsSchemaForGetTables -
supportsSchemaForGetColumns
public boolean supportsSchemaForGetColumns -
supportsNullTableForGetColumns
public boolean supportsNullTableForGetColumns -
supportsNullTableForGetPrimaryKeys
public boolean supportsNullTableForGetPrimaryKeys -
supportsNullTableForGetIndexInfo
public boolean supportsNullTableForGetIndexInfo -
supportsNullTableForGetImportedKeys
public boolean supportsNullTableForGetImportedKeys -
useGetBestRowIdentifierForPrimaryKeys
public boolean useGetBestRowIdentifierForPrimaryKeys -
requiresAutoCommitForMetaData
public boolean requiresAutoCommitForMetaData -
tableLengthIncludesSchema
public boolean tableLengthIncludesSchema -
maxAutoAssignNameLength
public int maxAutoAssignNameLength -
autoAssignClause
-
autoAssignTypeName
-
supportsAutoAssign
public boolean supportsAutoAssign -
lastGeneratedKeyQuery
-
nextSequenceQuery
-
sequenceSQL
-
sequenceSchemaSQL
-
sequenceNameSQL
-
nativeSequenceType
public int nativeSequenceType -
invalidColumnWordSet
reservedWordSet subset that CANNOT be used as valid column names (i.e., without surrounding them with double-quotes). -
useNativeSequenceCache
Deprecated.This variable was used in 2.1.x and prior releases to indicate that OpenJPA should not use the CACHE clause when getting a native sequence; instead the INCREMENT BY clause gets its value equal to the allocationSize property. Post 2.1.x, code was added to allow said functionality by default (see OPENJPA-1376). For forward compatibility, this variable should not be removed. -
conf
-
log
-
connected
protected boolean connected -
isJDBC3
protected boolean isJDBC3 -
isJDBC4
protected boolean isJDBC4 -
reservedWordSet
-
systemSchemaSet
-
systemTableSet
-
fixedSizeTypeNameSet
-
fractionalTypeNameSet
set of types that might have an optional fraction (sub-second) part. -
dateFractionDigits
public int dateFractionDigitsDefault amount of digits for fractional Types. This is not supported/required by every database. This value is only being used if no explicit@Column(scale=n)
is set or n is zero. Use@Column(scale=-1)
to disable the explicit fraction part in the SQL generator. -
typeModifierSet
-
supportsDelimitedIdentifiers
-
leadingDelimiter
-
trailingDelimiter
-
nameConcatenator
-
delimitedCase
-
catalogSeparator
-
defaultSchemaName
-
selectWordSet
If a native query begins with any of the values found here then it will be treated as a select statement. -
batchLimit
public int batchLimit -
sqlStateCodes
-
_proxyManager
-
_procs
-
-
Constructor Details
-
DBDictionary
public DBDictionary()
-
-
Method Details
-
connectedConfiguration
This method is called when the dictionary first sees any connection. It is used to initialize dictionary metadata if needed. If you override this method, be sure to callsuper.connectedConfiguration
.- Throws:
SQLException
-
configureNamingRules
protected void configureNamingRules()Configures the naming rules for this dictionary. Subclasses should override this method, providing their own naming rules. -
getArray
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getAsciiStream
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getBigDecimal
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getNumber
Returns the specified column value as an unknown numeric type; we try from the most generic to the least generic.- Throws:
SQLException
-
getBigInteger
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getBinaryStream
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getLOBStream
- Throws:
SQLException
-
getBlob
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getBlobObject
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getBoolean
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getByte
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getBytes
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getCalendar
Convert the specified column of the SQL ResultSet to the proper java type. Converts the date from aTimestamp
by default.- Throws:
SQLException
-
getLocalDate
Retrieve the specified column of the SQL ResultSet to the properLocalDate
java type.- Throws:
SQLException
-
getLocalTime
Retrieve the specified column of the SQL ResultSet to the properLocalTime
java type.- Throws:
SQLException
-
getLocalDateTime
Retrieve the specified column of the SQL ResultSet to the properLocalDateTime
java type.- Throws:
SQLException
-
getOffsetTime
Retrieve the specified column of the SQL ResultSet to the properOffsetTime
java type.- Throws:
SQLException
-
getOffsetDateTime
Retrieve the specified column of the SQL ResultSet to the properOffsetDateTime
java type.- Throws:
SQLException
-
getChar
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getCharacterStream
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getClob
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getClobString
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getDate
Convert the specified column of the SQL ResultSet to the proper java type. Converts the date from aTimestamp
by default.- Throws:
SQLException
-
getDate
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getDouble
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getFloat
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getInt
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getLocale
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getLong
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getObject
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getRef
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getShort
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getString
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getTime
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
getTimestamp
Convert the specified column of the SQL ResultSet to the proper java type.- Throws:
SQLException
-
setArray
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setAsciiStream
public void setAsciiStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBigDecimal
public void setBigDecimal(PreparedStatement stmnt, int idx, BigDecimal val, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBigInteger
public void setBigInteger(PreparedStatement stmnt, int idx, BigInteger val, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBinaryStream
public void setBinaryStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBlob
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBlobObject
public void setBlobObject(PreparedStatement stmnt, int idx, Object val, Column col, JDBCStore store) throws SQLException Set the given value as a parameter to the statement. Uses theserialize(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)
method to serialize the value.- Throws:
SQLException
-
setBoolean
public void setBoolean(PreparedStatement stmnt, int idx, boolean val, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setByte
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setBytes
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setChar
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setCharacterStream
public void setCharacterStream(PreparedStatement stmnt, int idx, Reader val, int length, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setClob
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setClobString
public void setClobString(PreparedStatement stmnt, int idx, String val, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setDate
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setDate
public void setDate(PreparedStatement stmnt, int idx, Date val, Calendar cal, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setCalendar
public void setCalendar(PreparedStatement stmnt, int idx, Calendar val, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setLocalDate
public void setLocalDate(PreparedStatement stmnt, int idx, LocalDate val, Column col) throws SQLException Set the given LocalDate value as a parameter to the statement.- Throws:
SQLException
-
setLocalTime
public void setLocalTime(PreparedStatement stmnt, int idx, LocalTime val, Column col) throws SQLException Set the given LocalTime value as a parameter to the statement.- Throws:
SQLException
-
setLocalDateTime
public void setLocalDateTime(PreparedStatement stmnt, int idx, LocalDateTime val, Column col) throws SQLException Set the given LocalTime value as a parameter to the statement.- Throws:
SQLException
-
setOffsetTime
public void setOffsetTime(PreparedStatement stmnt, int idx, OffsetTime val, Column col) throws SQLException Set the given LocalTime value as a parameter to the statement.- Throws:
SQLException
-
setOffsetDateTime
public void setOffsetDateTime(PreparedStatement stmnt, int idx, OffsetDateTime val, Column col) throws SQLException Set the given LocalTime value as a parameter to the statement.- Throws:
SQLException
-
setDouble
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setFloat
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setInt
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setLong
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setLocale
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setNull
Set null as a parameter to the statement. The column type will come fromTypes
.- Throws:
SQLException
-
setNumber
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setObject
public void setObject(PreparedStatement stmnt, int idx, Object val, int colType, Column col) throws SQLException Set the given value as a parameter to the statement. The column type will come fromTypes
.- Throws:
SQLException
-
setRef
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setShort
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setString
Set the given value as a parameter to the statement.- Throws:
SQLException
-
setTime
public void setTime(PreparedStatement stmnt, int idx, Time val, Calendar cal, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setTimestamp
public void setTimestamp(PreparedStatement stmnt, int idx, Timestamp val, Calendar cal, Column col) throws SQLException Set the given value as a parameter to the statement.- Throws:
SQLException
-
setTyped
public void setTyped(PreparedStatement stmnt, int idx, Object val, Column col, int type, JDBCStore store) throws SQLException Set a column value into a prepared statement.- Parameters:
stmnt
- the prepared statement to parameterizeidx
- the index of the parameter in the prepared statementval
- the value of the columncol
- the column being settype
- the field mapping type code for the valuestore
- the store manager for the current context- Throws:
SQLException
-
setUnknown
Set a completely unknown parameter into a prepared statement.- Throws:
SQLException
-
setUnknown
public void setUnknown(PreparedStatement stmnt, int idx, Column col, Object val) throws SQLException Set a completely unknown parameter into a prepared statement.- Throws:
SQLException
-
serialize
Return the serialized bytes for the given object.- Throws:
SQLException
-
putBytes
Invoke the JDK 1.4setBytes
method on the given BLOB object.- Throws:
SQLException
-
putString
Invoke the JDK 1.4setString
method on the given CLOB object.- Throws:
SQLException
-
putChars
Invoke the JDK 1.4setCharacterStream
method on the given CLOB object.- Throws:
SQLException
-
storageWarning
Warn that a particular value could not be stored precisely. After the first warning for a particular type, messages will be turned into trace messages. -
getJDBCType
public int getJDBCType(int metaTypeCode, boolean lob) -
getJDBCType
public int getJDBCType(int metaTypeCode, boolean lob, int precis, int scale, boolean xml) -
getJDBCType
public int getJDBCType(int metaTypeCode, boolean lob, int precis, int scale) -
getPreferredType
public int getPreferredType(int type) Return the preferredTypes
type for the given one. Returns the given type by default. -
getTypeName
Return the preferred database type name for the given column's type fromTypes
. -
getTypeName
Returns the type name for the specific constant as defined byTypes
.- Parameters:
type
- the type- Returns:
- the name for the type
-
appendSize
Helper method to add size properties to the specified type. If present, the string "{0}" will be replaced with the size definition; otherwise the size definition will be appended to the type name. If your database has column types that don't allow size definitions, override this method to return the unaltered type name for columns of those types (or add the type names to thefixedSizeTypeNameSet
).Some databases support "type modifiers", for example the unsigned "modifier" in MySQL. In these cases the size should go between the type and the "modifier", instead of after the modifier. For example CREATE table FOO ( myint INT (10) UNSIGNED . . .) instead of CREATE table FOO ( myint INT UNSIGNED (10) . . .). Type modifiers should be added to
typeModifierSet
in subclasses. -
getDateFractionDigits
Only get's used if no explicit scale is used (@{code @Column(scale=0)} which is the default). Attention! @{code @Column(scale=-1)} disables the scale of a column- Returns:
- the fraction length of types which have a fraction
- See Also:
-
insertSize
Helper method that inserts a size clause for a given SQL type.- Parameters:
typeName
- The SQL type e.g. INTsize
- The size clause e.g. (10)- Returns:
- The typeName + size clause. Usually the size clause will be appended to typeName. If the typeName contains a marker : {0} or if typeName contains a modifier the size clause will be inserted appropriately.
-
setJoinSyntax
Set the name of the join syntax to use: sql92, traditional, database. -
isImplicitJoin
public boolean isImplicitJoin() -
getPlaceholderValueString
Return a SQL string to act as a placeholder for the given column. -
toSelectCount
Create a SELECT COUNT statement in the proper join syntax for the given instance. -
toDelete
Create a DELETE statement for the specified Select. If the database does not support the bulk delete statement (such as cases where a subselect is required and the database doesn't support subselects), this method should return null. -
toUpdate
-
toBulkOperation
protected SQLBuffer toBulkOperation(ClassMapping mapping, Select sel, JDBCStore store, Object[] params, Map updateParams) Returns the SQL for a bulk operation, either a DELETE or an UPDATE.- Parameters:
mapping
- the mapping against which we are operatingsel
- the Select that will constitute the WHERE clausestore
- the current storeupdateParams
- the Map that holds the update parameters; a null value indicates that this is a delete operation- Returns:
- the SQLBuffer for the update, or null if it is not possible to perform the bulk update
-
getSelectTableAliases
-
getDeleteTargets
-
appendUpdates
-
getDeleteTableContentsSQL
Create SQL to delete the contents of the specified tables. The default implementation drops all non-deferred RESTRICT foreign key constraints involving the specified tables, issues DELETE statements against the tables, and then adds the dropped constraints back in. Databases with more optimal ways of deleting the contents of several tables should override this method. -
toSelect
Create a SELECT statement in the proper join syntax for the given instance. -
getFrom
Return the portion of the select statement between the FROM keyword and the WHERE keyword. -
getFromSelect
Return the FROM clause for a select that selects from a tmp table created by an inner select. -
getWhere
Return the WHERE portion of the select statement, or null if no where conditions. -
toTraditionalJoin
Use the given join instance to create SQL joining its tables in the traditional style. -
toSQL92Join
Use the given join instance to create SQL joining its tables in the SQL92 style. -
toNativeJoin
Use the given join instance to create SQL joining its tables in the database's native syntax. Throws an exception by default. -
canOuterJoin
Returns if the given foreign key can be eagerly loaded using other joins. -
toSelect
public SQLBuffer toSelect(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end) Combine the given components into a SELECT statement. -
toSelect
protected SQLBuffer toSelect(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, boolean subselect, Select sel) Combine the given components into a SELECT statement. -
toSelect
-
toSelect
protected SQLBuffer toSelect(SQLBuffer selects, JDBCFetchConfiguration fetch, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, boolean forUpdate, long start, long end, Select sel) Combine the given components into a SELECT statement. -
getForUpdateClause
Get the update clause for the query based on the updateClause and isolationLevel hints -
supportsIsolationForUpdate
public boolean supportsIsolationForUpdate()Return true if the dictionary uses isolation level to compute the returned getForUpdateClause() SQL clause. -
getSelectOperation
Return the "SELECT" operation clause, adding any available hints, etc. -
toOperation
public SQLBuffer toOperation(String op, SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, long start, long end, String forUpdateClause) Return the SQL for the given selecting operation. -
toOperation
public SQLBuffer toOperation(String op, SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, long start, long end, String forUpdateClause, boolean subselect) Return the SQL for the given selecting operation. -
appendSelectRange
If this dictionary can select ranges, use this method to append the range SQL. -
getSelects
Return the portion of the select statement between the SELECT keyword and the FROM keyword. -
appendSelect
Appendelem
toselectSQL
. -
supportsLocking
Returns true if a "FOR UPDATE" clause can be used for the specified Select object. -
supportsRandomAccessResultSet
Return false if the given select requires a forward-only result set. -
assertSupport
Assert that the given dictionary flag is true. If it is not true, throw an error saying that the given setting needs to return true for the current operation to work. -
substring
Invoke this database's substring function. Numeric parameters are inlined if possible. This is to handle grouping by SUBSTRING - most databases do not allow parameter binding in this case.- Parameters:
buf
- the SQL buffer to write the substring invocation tostr
- a query value representing the target stringstart
- a query value representing the start indexlength
- a query value representing the length of substring, or null for none
-
indexOf
Invoke this database's indexOf function.- Parameters:
buf
- the SQL buffer to write the indexOf invocation tostr
- a query value representing the target stringfind
- a query value representing the search stringstart
- a query value representing the start index, or null to start at the beginning
-
mathFunction
Append the numeric parts of a mathematical function.- Parameters:
buf
- the SQL buffer to write the math functionop
- the mathematical operation to performlhs
- the left hand side of the math functionrhs
- the right hand side of the math function
-
comparison
Append a comparison.- Parameters:
buf
- the SQL buffer to write the comparisonop
- the comparison operation to performlhs
- the left hand side of the comparisonrhs
- the right hand side of the comparison
-
appendXmlComparison
public void appendXmlComparison(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs, boolean lhsxml, boolean rhsxml) If this dictionary supports XML type, use this method to append xml predicate. -
appendNumericCast
Append SQL for the given numeric value to the buffer, casting as needed. -
appendCast
Cast the specified value to the specified type.- Parameters:
buf
- the buffer to append the cast toval
- the value to casttype
- the type of the case, e.g.Types.NUMERIC
-
appendLength
-
addCastAsType
add CAST for a function operator where operand is a param- Parameters:
func
- function nameval
-- Returns:
- updated func
-
refSchemaComponents
Increment the reference count of any table components that this dictionary adds that are not used by mappings. Does nothing by default. -
getColumnIdentifier
Returns the name of the column using database specific delimiters. -
getColumnDBName
-
toSnakeCase
-
getFullIdentifier
Returns the full name of the table, including the schema (delimited bycatalogSeparator
). -
getFullName
-
getFullName
Returns the full name of the index, including the schema (delimited by the result ofcatalogSeparator
). -
getFullName
Returns the full name of the sequence, including the schema (delimited by the result ofcatalogSeparator
). -
getInvalidColumnWordSet
Return the subset of the words in reservedWordSet that cannot be used as valid column names for the current DB. If the column name is invalid the getValidColumnName method of the DB dictionary should be invoked to make it valid. -
getValidTableName
Deprecated.Make any necessary changes to the given table name to make it valid for the current DB. -
getValidTableName
Make any necessary changes to the given table name to make it valid for the current DB. -
getValidSequenceName
Deprecated.Make any necessary changes to the given sequence name to make it valid for the current DB. -
getValidSequenceName
Make any necessary changes to the given sequence name to make it valid for the current DB. -
getValidColumnName
Deprecated.Make any necessary changes to the given column name to make it valid for the current DB. The column name will be made unique for the specified table. -
processDBColumnName
-
getValidColumnName
Make any necessary changes to the given column name to make it valid for the current DB. The column name will be made unique for the specified table. -
getValidColumnName
Deprecated.Make any necessary changes to the given column name to make it valid for the current DB. If checkForUniqueness is true, the column name will be made unique for the specified table. -
getValidColumnName
Make any necessary changes to the given column name to make it valid for the current DB. If checkForUniqueness is true, the column name will be made unique for the specified table. -
getValidPrimaryKeyName
Make any necessary changes to the given primary key name to make it valid for the current DB. -
getValidForeignKeyName
Deprecated.Make any necessary changes to the given foreign key name to make it valid for the current DB. -
getValidForeignKeyName
Make any necessary changes to the given foreign key name to make it valid for the current DB. -
getValidIndexName
Deprecated.Make any necessary changes to the given index name to make it valid for the current DB. -
getValidIndexName
Make any necessary changes to the given index name to make it valid for the current DB. -
getValidUniqueName
Deprecated.Make any necessary changes to the given unique constraint name to make it valid for the current DB. -
getValidUniqueName
Make any necessary changes to the given unique constraint name to make it valid for the current DB. -
shorten
Shorten the specified name to the specified target name. This will be done by first stripping out the vowels, and then removing characters from the middle of the word until it reaches the target length. -
makeNameValid
Deprecated.Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. -
makeNameValid
Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. -
makeNameValid
protected String makeNameValid(String name, NameSet set, int maxLen, int nameType, boolean checkForUniqueness) Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component and uniqueness checking is enabled, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. Note: If the name is delimited, make sure the ending delimiter is not stripped off. -
makeNameValid
protected DBIdentifier makeNameValid(DBIdentifier name, NameSet set, int maxLen, int nameType, boolean checkForUniqueness) Shortens the given name to the given maximum length, then checks that it is not a reserved word. If it is reserved, appends a "0". If the name conflicts with an existing schema component and uniqueness checking is enabled, the last character is replace with '0', then '1', etc. Note that the given max len may be 0 if the database metadata is incomplete. Note: If the name is delimited, make sure the ending delimiter is not stripped off. -
getCreateTableSQL
Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately. -
getCreateTableSQL
Return a series of SQL statements to create the given table, complete with columns. Indexes and constraints will be created separately. -
getBatchFetchSize
public int getBatchFetchSize(int batchFetchSize) -
comment
-
getDropTableSQL
Return a series of SQL statements to drop the given table. Indexes will be dropped separately. ReturnsDROP TABLE <table name>
by default. -
getCreateSequenceSQL
Return a series of SQL statements to create the given sequence. ReturnsCREATE SEQUENCE <sequence name>[ START WITH <start>] [ INCREMENT BY <increment>]
by default. -
getAlterSequenceSQL
-
getDropSequenceSQL
Return a series of SQL statements to drop the given sequence. ReturnsDROP SEQUENCE <sequence name>
by default. -
getCreateIndexSQL
Return a series of SQL statements to create the given index. ReturnsCREATE [UNIQUE] INDEX <index name> ON <table name> (<col list>)
by default. -
getDropIndexSQL
Return a series of SQL statements to drop the given index. ReturnsDROP INDEX <index name>
by default. -
getAddColumnSQL
Return a series of SQL statements to add the given column to its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> ADD (<col dec>)
by default. -
getDropColumnSQL
Return a series of SQL statements to drop the given column from its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> DROP COLUMN <col name>
by default. -
getAddPrimaryKeySQL
Return a series of SQL statements to add the given primary key to its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> ADD <pk cons sql >
by default. -
getDropPrimaryKeySQL
Return a series of SQL statements to drop the given primary key from its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> DROP CONSTRAINT <pk name>
by default. -
getAddForeignKeySQL
Return a series of SQL statements to add the given foreign key to its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> ADD <fk cons sql >
by default. -
getDropForeignKeySQL
Return a series of SQL statements to drop the given foreign key from its table. Return an empty array if operation not supported. ReturnsALTER TABLE <table name> DROP CONSTRAINT <fk name>
by default. -
getDeclareColumnSQL
Return the declaration SQL for the given column. This method is used for each column from withingetCreateTableSQL(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.SchemaGroup)
andgetAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)
. -
getPrimaryKeyConstraintSQL
Return the declaration SQL for the given primary key. This method is used from withingetCreateTableSQL(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.SchemaGroup)
andgetAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)
. ReturnsCONSTRAINT <pk name> PRIMARY KEY (<col list>)
by default. -
getForeignKeyConstraintSQL
Return the declaration SQL for the given foreign key, or null if it is not supported. This method is used from withingetCreateTableSQL(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.SchemaGroup)
andgetAddForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)
. ReturnsCONSTRAINT <cons name> FOREIGN KEY (<col list>) REFERENCES <foreign table> (<col list>) [ON DELETE <action>] [ON UPDATE <action>]
by default. -
supportsDeferredForeignKeyConstraints
protected boolean supportsDeferredForeignKeyConstraints()Whether or not this dictionary supports deferred foreign key constraints. This implementation returnssupportsUniqueConstraints
.- Since:
- 1.1.0
-
supportsDeleteAction
public boolean supportsDeleteAction(int action) Whether this database supports the given foreign key delete action. -
supportsUpdateAction
public boolean supportsUpdateAction(int action) Whether this database supports the given foreign key update action. -
getUniqueConstraintSQL
Return the declaration SQL for the given unique constraint. This method is used from withingetCreateTableSQL(org.apache.openjpa.jdbc.schema.Table, org.apache.openjpa.jdbc.schema.SchemaGroup)
. ReturnsCONSTRAINT <name> UNIQUE (<col list>)
by default. -
supportsDeferredUniqueConstraints
protected boolean supportsDeferredUniqueConstraints()Whether or not this dictionary supports deferred unique constraints. This implementation returnssupportsUniqueConstraints
.- Since:
- 1.1.0
-
isSystemTable
Deprecated.This method is used to filter system tables from database metadata. Return true if the given table name represents a system table that should not appear in the schema definition. By default, returns true only if the given table is in the internal list of system tables, or if the given schema is in the list of system schemas and is not the target schema.- Parameters:
name
- the table nameschema
- the table schema; may be nulltargetSchema
- if true, then the given schema was listed by the user as one of his schemas
-
isSystemTable
This method is used to filter system tables from database metadata. Return true if the given table name represents a system table that should not appear in the schema definition. By default, returns true only if the given table is in the internal list of system tables, or if the given schema is in the list of system schemas and is not the target schema.- Parameters:
name
- the table nameschema
- the table schema; may be nulltargetSchema
- if true, then the given schema was listed by the user as one of his schemas
-
isSystemIndex
Deprecated.This method is used to filter system indexes from database metadata. Return true if the given index name represents a system index that should not appear in the schema definition. Returns false by default.- Parameters:
name
- the index nametable
- the index table
-
isSystemIndex
This method is used to filter system indexes from database metadata. Return true if the given index name represents a system index that should not appear in the schema definition. Returns false by default.- Parameters:
name
- the index nametable
- the index table
-
isSystemSequence
Deprecated.This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.- Parameters:
name
- the table nameschema
- the table schema; may be nulltargetSchema
- if true, then the given schema was listed by the user as one of his schemas
-
isSystemSequence
This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.- Parameters:
name
- the table nameschema
- the table schema; may be nulltargetSchema
- if true, then the given schema was listed by the user as one of his schemas
-
isSystemSequence
public boolean isSystemSequence(DBIdentifier name, DBIdentifier schema, boolean targetSchema, Connection conn) This method is used to filter system sequences from database metadata. Return true if the given sequence represents a system sequence that should not appear in the schema definition. Returns true if system schema by default.- Parameters:
name
- the table nameschema
- the table schema; may be nulltargetSchema
- if true, then the given schema was listed by the user as one of his schemasconn
- connection to the database
-
getTables
@Deprecated public Table[] getTables(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException Deprecated.not used by openjpa internally anymoreReflect on the schema to find tables matching the given name pattern. -
getTables
public Table[] getTables(DatabaseMetaData meta, DBIdentifier sqlCatalog, DBIdentifier sqlSchemaName, DBIdentifier sqlTableName, Connection conn) throws SQLException Reflect on the schema to find tables matching the given name pattern.- Throws:
SQLException
-
newTable
Create a new table from the information in the schema metadata.- Throws:
SQLException
-
getSequences
@Deprecated public Sequence[] getSequences(DatabaseMetaData meta, String catalog, String schemaName, String sequenceName, Connection conn) throws SQLException Deprecated.Reflect on the schema to find sequences matching the given name pattern. Returns an empty array by default, as there is no standard way to retrieve a list of sequences.- Throws:
SQLException
-
getSequences
public Sequence[] getSequences(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier sequenceName, Connection conn) throws SQLException - Throws:
SQLException
-
newSequence
Create a new sequence from the information in the schema metadata.- Throws:
SQLException
-
getSequencesSQL
Deprecated.Return the SQL needed to select the list of sequences. -
getSequencesSQL
-
getColumns
@Deprecated public Column[] getColumns(DatabaseMetaData meta, String catalog, String schemaName, String tableName, String columnName, Connection conn) throws SQLException Deprecated.Reflect on the schema to find columns matching the given table and column patterns.- Throws:
SQLException
-
getColumns
public Column[] getColumns(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, DBIdentifier columnName, Connection conn) throws SQLException Reflect on the schema to find columns matching the given table and column patterns.- Throws:
SQLException
-
newColumn
Create a new column from the information in the schema metadata.- Throws:
SQLException
-
getPrimaryKeys
@Deprecated public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException Deprecated.Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
getPrimaryKeys
public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) throws SQLException Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
getPrimaryKeysFromGetPrimaryKeys
@Deprecated protected PrimaryKey[] getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException Deprecated.Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
getPrimaryKeysFromGetPrimaryKeys
protected PrimaryKey[] getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) throws SQLException Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
newPrimaryKey
Create a new primary key from the information in the schema metadata.- Throws:
SQLException
-
getPrimaryKeysFromBestRowIdentifier
@Deprecated protected PrimaryKey[] getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException Deprecated.Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
getPrimaryKeysFromBestRowIdentifier
protected PrimaryKey[] getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) throws SQLException Reflect on the schema to find primary keys for the given table pattern.- Throws:
SQLException
-
getIndexInfo
@Deprecated public Index[] getIndexInfo(DatabaseMetaData meta, String catalog, String schemaName, String tableName, boolean unique, boolean approx, Connection conn) throws SQLException Deprecated.Reflect on the schema to find indexes matching the given table pattern.- Throws:
SQLException
-
getIndexInfo
public Index[] getIndexInfo(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, boolean unique, boolean approx, Connection conn) throws SQLException Reflect on the schema to find indexes matching the given table pattern.- Throws:
SQLException
-
newIndex
Create a new index from the information in the schema metadata.- Throws:
SQLException
-
getImportedKeys
@Deprecated public ForeignKey[] getImportedKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException Deprecated.Reflect on the schema to return foreign keys imported by the given table pattern.- Throws:
SQLException
-
getImportedKeys
public ForeignKey[] getImportedKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn) throws SQLException Reflect on the schema to return foreign keys imported by the given table pattern.- Throws:
SQLException
-
getImportedKeys
@Deprecated public ForeignKey[] getImportedKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn, boolean partialKeys) throws SQLException Deprecated.Reflect on the schema to return full foreign keys imported by the given table pattern.- Throws:
SQLException
-
getImportedKeys
public ForeignKey[] getImportedKeys(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schemaName, DBIdentifier tableName, Connection conn, boolean partialKeys) throws SQLException Reflect on the schema to return full foreign keys imported by the given table pattern.- Throws:
SQLException
-
combineForeignKey
Combines partial foreign keys into singular key -
newForeignKey
Create a new foreign key from the information in the schema metadata.- Throws:
SQLException
-
getTableNameForMetadata
Returns the table name that will be used for obtaining information fromDatabaseMetaData
. -
getTableNameForMetadata
Returns the table name that will be used for obtaining information fromDatabaseMetaData
. -
getSchemaNameForMetadata
Returns the schema name that will be used for obtaining information fromDatabaseMetaData
. -
getSchemaNameForMetadata
Returns the schema name that will be used for obtaining information fromDatabaseMetaData
. -
getCatalogNameForMetadata
Returns the catalog name that will be used for obtaining information fromDatabaseMetaData
. -
getCatalogNameForMetadata
Returns the catalog name that will be used for obtaining information fromDatabaseMetaData
. -
getColumnNameForMetadata
Returns the column name that will be used for obtaining information fromDatabaseMetaData
. -
getColumnNameForMetadata
Returns the column name that will be used for obtaining information fromDatabaseMetaData
. -
convertSchemaCase
Convert the specified schema name to a name that the database will be able to understand. -
convertSchemaCase
Convert the specified schema name to a name that the database will be able to understand. -
getSchemaCase
Return DB specific schemaCase- Specified by:
getSchemaCase
in interfaceIdentifierConfiguration
- Returns:
- upper, lower, or preserve
-
getGeneratedKey
Return the last generated value for the given column. Throws an exception by default iflastGeneratedKeyQuery
is null.- Throws:
SQLException
-
getGenKeySeqName
-
getGeneratedKeySequenceName
Return the sequence name used by databases for the given autoassigned column. This is only used by databases that require an explicit name to be used for auto-assign support. -
getStoredProcedure
public StoredProcedure getStoredProcedure(DatabaseMetaData meta, DBIdentifier catalog, DBIdentifier schema, String procedure) throws SQLException Gets the metadata of the stored procedure by the given name either from the cached version or by enquiring the database.- Parameters:
meta
- the database meta datacatalog
- the catalog name or nullschema
- the schema name or nullprocedure
- the procedure name- Returns:
- metadata about the named procedure or null
- Throws:
SQLException
- when metadata query goes wrong
-
setConfiguration
Description copied from interface:Configurable
Invoked prior to setting bean properties.- Specified by:
setConfiguration
in interfaceConfigurable
-
startConfiguration
public void startConfiguration()Description copied from interface:Configurable
Invoked before bean property configuration is begun on this object.- Specified by:
startConfiguration
in interfaceConfigurable
-
endConfiguration
public void endConfiguration()Description copied from interface:Configurable
Invoked upon completion of bean property configuration for this object.- Specified by:
endConfiguration
in interfaceConfigurable
-
addErrorCode
-
setTimeouts
public void setTimeouts(PreparedStatement stmnt, JDBCFetchConfiguration fetch, boolean forUpdate) throws SQLException FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts. This method is to provide override for non-JDBC or JDBC-like implementation of setting query and lock timeouts.- Parameters:
stmnt
-fetch
- - optional lock and query timeouts in millisecondsforUpdate
- - true if we should also try setting a lock timeout- Throws:
SQLException
-
setTimeouts
public void setTimeouts(PreparedStatement stmnt, JDBCConfiguration conf, boolean forUpdate) throws SQLException FIXME - OPENJPA-957 - lockTimeout is a server-side function and shouldn't be using client-side setQueryTimeout for lock timeouts. This method is to provide override for non-JDBC or JDBC-like implementation of setting query and lock timeouts.- Parameters:
stmnt
-conf
- - optional lock and query timeouts in millisecondsforUpdate
- - true if we should also try setting a lock timeout- Throws:
SQLException
-
setQueryTimeout
Provides the default validation handling of setting a query timeout.- Parameters:
stmnt
-timeout
- in milliseconds- Throws:
SQLException
-
setStatementQueryTimeout
Allow subclasses to provide DB unique override implementations of setting query timeouts, while preserving the default timeout logic in the public setQueryTimeout method.- Parameters:
stmnt
-timeout
- in milliseconds- Throws:
SQLException
-
decorate
Decorate the given connection if needed. Some databases require special handling for JDBC bugs. This implementation issues anyinitializationSQL
that has been set for the dictionary but does not decorate the connection.- Specified by:
decorate
in interfaceConnectionDecorator
- Throws:
SQLException
-
handleWarning
Implementation of theLoggingConnectionDecorator.SQLWarningHandler
interface that allows customization of the actions to perform when aSQLWarning
occurs at any point on aConnection
,Statement
, orResultSet
. This method may be used determine those warnings the application wants to consider critical failures, and throw the warning in those cases. By default, this method does nothing. -
newStoreException
Return a new exception that wrapscauses
. However, the details of exactly what type of exception is returned can be determined by the implementation. This may take into account DB-specific exception information incauses
. -
matchErrorState
Determine the more appropriate type of store exception by matching the SQL Error State of the the given SQLException to the given Error States categorized by error types. Dictionary subclass can override this method and extract SQLException data to figure out if the exception is recoverable.- Parameters:
errorStates
- classification of SQL error states by their specific nature. The keys of the map represent one of the constants defined inStoreException
. The value corresponding to a key represent the set of SQL Error States representing specific category of database error. This supplied map is sourced fromsql-error-state-codes.xml and filtered the error states for the current database.
ex
- original SQL Exception as raised by the database driver.- Returns:
- A constant indicating the category of error as defined in
StoreException
.
-
isFatalException
Determine if the given SQL Exception is fatal or recoverable (such as a timeout). This implementation always returns true (i.e. all exceptions are fatal). The current dictionary implementation can overwrite this method to mark certain exception conditions as recoverable error.- Parameters:
subtype
- A constant indicating the category of error as defined inStoreException
.ex
- original SQL Exception as raised by the database driver.- Returns:
- false if the error is fatal.
-
closeDataSource
Closes the specifiedDataSource
and releases any resources associated with it.- Parameters:
dataSource
- the DataSource to close
-
getVersionColumn
Return version column name- Parameters:
column
-tableAlias
- : this is needed for platform specific version column
-
getVersionColumn
-
insertBlobForStreamingLoad
public void insertBlobForStreamingLoad(Row row, Column col, JDBCStore store, Object ob, Select sel) throws SQLException - Throws:
SQLException
-
insertClobForStreamingLoad
- Throws:
SQLException
-
updateBlob
- Throws:
SQLException
-
updateClob
- Throws:
SQLException
-
copy
- Throws:
IOException
-
copy
- Throws:
IOException
-
getCastFunction
Attach CAST to the current function if necessary- Parameters:
val
- operand value- Returns:
- a String with the correct CAST function syntax
-
getCastFunction
Return the correct CAST function syntax. This should be overriden by subclasses that need access to the Column information.- Parameters:
val
- operand of castfunc
- original stringcol
- database column- Returns:
- a String with the correct CAST function syntax
-
createIndexIfNecessary
Deprecated.Create an index if necessary for some database tables -
createIndexIfNecessary
-
getBatchLimit
public int getBatchLimit()Return the batchLimit -
setBatchLimit
public void setBatchLimit(int limit) Set the batchLimit value -
validateBatchProcess
public boolean validateBatchProcess(RowImpl row, Column[] autoAssign, OpenJPAStateManager sm, ClassMapping cmd) Validate the batch process. In some cases, we can't batch the statements due to some restrictions. For example, if the GeneratedType=IDENTITY, we have to disable the batch process because we need to get the ID value right away for the in-memory entity to use. -
validateDBSpecificBatchProcess
public boolean validateDBSpecificBatchProcess(boolean disableBatch, RowImpl row, Column[] autoAssign, OpenJPAStateManager sm, ClassMapping cmd) Allow each Dictionary to validate its own batch process. -
executeQuery
protected ResultSet executeQuery(Connection conn, PreparedStatement stmnt, String sql) throws SQLException This method is to provide override for non-JDBC or JDBC-like implementation of executing query.- Throws:
SQLException
-
prepareStatement
This method is to provide override for non-JDBC or JDBC-like implementation of preparing statement.- Throws:
SQLException
-
getSequence
This method is to provide override for non-JDBC or JDBC-like implementation of getting sequence from the result set.- Throws:
SQLException
-
getKey
This method is to provide override for non-JDBC or JDBC-like implementation of getting key from the result set.- Throws:
SQLException
-
calculateValue
protected void calculateValue(Val val, Select sel, ExpContext ctx, ExpState state, Path path, ExpState pathState) This method is to provide override for non-JDBC or JDBC-like implementation of calculating value. -
isSelect
Determine whether the providedsql
may be treated as a select statement on this database.- Parameters:
sql
- A sql statement.- Returns:
- true if
sql
represents a select statement.
-
needsToCreateIndex
-
needsToCreateIndex
-
getBatchUpdateCount
Return batched statements update success count- Parameters:
ps
- A PreparedStatement- Returns:
- return update count
- Throws:
SQLException
-
getTrimSchemaName
public boolean getTrimSchemaName() -
setTrimSchemaName
public void setTrimSchemaName(boolean trimSchemaName) -
deleteStream
- Throws:
SQLException
-
setDelimitedCase
-
getSupportsDelimitedIdentifiers
public boolean getSupportsDelimitedIdentifiers()Description copied from interface:IdentifierConfiguration
Returns true if delimiting is supported- Specified by:
getSupportsDelimitedIdentifiers
in interfaceIdentifierConfiguration
- Returns:
- the supportsDelimitedIds
-
setSupportsDelimitedIdentifiers
public void setSupportsDelimitedIdentifiers(boolean supportsDelimitedIds) - Parameters:
supportsDelimitedIds
- the supportsDelimitedIds to set
-
getDelimitIdentifiers
public boolean getDelimitIdentifiers()- Returns:
- the delimitIds
-
setDelimitIdentifiers
public void setDelimitIdentifiers(boolean delimitIds) - Parameters:
delimitIds
- the delimitIds to set
-
getSupportsXMLColumn
public boolean getSupportsXMLColumn()- Returns:
- supportsXMLColumn
-
setSupportsXMLColumn
public void setSupportsXMLColumn(boolean b) - Parameters:
b
- boolean representing if XML columns are supported
-
getXMLTypeEncoding
- Returns:
- xmlTypeEncoding
-
setXMLTypeEncoding
- Parameters:
encoding
- database required JAXB encoding for the XML value
-
getLog
-
delimitAll
public boolean delimitAll()Description copied from interface:IdentifierConfiguration
Returns true if global name delimiting is enabled.- Specified by:
delimitAll
in interfaceIdentifierConfiguration
-
getLeadingDelimiter
Description copied from interface:IdentifierConfiguration
Returns the leading delimiter value to use when delimiting a name.- Specified by:
getLeadingDelimiter
in interfaceIdentifierConfiguration
-
setLeadingDelimiter
-
getIdentifierDelimiter
Description copied from interface:IdentifierConfiguration
Returns the value used to delimit between individual names. For example: "." used in MYSCHEMA.MYTABLE- Specified by:
getIdentifierDelimiter
in interfaceIdentifierConfiguration
-
getIdentifierConcatenator
Description copied from interface:IdentifierConfiguration
Returns the value used to concatenate multiple names together. For example: "_" used in TABLE1_TABLE2- Specified by:
getIdentifierConcatenator
in interfaceIdentifierConfiguration
-
getTrailingDelimiter
Description copied from interface:IdentifierConfiguration
Returns the trailing delimiter value to use when delimiting a name.- Specified by:
getTrailingDelimiter
in interfaceIdentifierConfiguration
-
setTrailingDelimiter
-
getDefaultIdentifierRule
Description copied from interface:IdentifierConfiguration
Gets the default naming rule- Specified by:
getDefaultIdentifierRule
in interfaceIdentifierConfiguration
-
getIdentifierRule
Description copied from interface:IdentifierConfiguration
Returns a naming rule or null if the rule is not found.- Specified by:
getIdentifierRule
in interfaceIdentifierConfiguration
-
getIdentifierRules
Description copied from interface:IdentifierConfiguration
Returns all naming rules- Specified by:
getIdentifierRules
in interfaceIdentifierConfiguration
-
getNamingUtil
Returns the naming utility used by this dictionary instance -
getDelimitedCase
Description copied from interface:IdentifierConfiguration
Returns the case that is used when delimiting.- Specified by:
getDelimitedCase
in interfaceIdentifierConfiguration
- Returns:
- upper, lower, or preserve
-
toDBName
-
toDBName
-
fromDBName
-
setDefaultSchemaName
-
getDefaultSchemaName
-
getConversionKey
Description copied from interface:IdentifierConfiguration
Returns a key that can be used to determine whether conversion should take place. Id configurations should create a key unique to their configuration. The typical key is: leading delimiter (") + name separator(.) + trailing delimiter(")- Specified by:
getConversionKey
in interfaceIdentifierConfiguration
-
getMarkerForInsertUpdate
Return parameter marker for INSERT and UPDATE statements. Usually it is?
but some database-specific types might require customization.- Parameters:
col
- column definitionval
- value to be inserted/updated- Returns:
- parameter marker
-
getIsNullSQL
-
getIsNotNullSQL
-
getIdentityColumnName
-
getMillisecondBehavior
Default behavior is ROUND -
setDateMillisecondBehavior
-
getBooleanRepresentation
-
setBooleanRepresentation
-
isUsingRange
protected boolean isUsingRange(long start, long end) -
isUsingOffset
protected boolean isUsingOffset(long start) -
isUsingLimit
protected boolean isUsingLimit(long end) -
isUsingOrderBy
-
versionEqualOrLaterThan
protected boolean versionEqualOrLaterThan(int maj, int min) -
versionEqualOrEarlierThan
protected boolean versionEqualOrEarlierThan(int maj, int min) -
versionLaterThan
protected boolean versionLaterThan(int maj) -
getMajorVersion
public final int getMajorVersion()Gets major version of the database server. -
setMajorVersion
public void setMajorVersion(int maj) Sets major version of the database server. -
getMinorVersion
public final int getMinorVersion()Gets minor version of the database server. -
setMinorVersion
public void setMinorVersion(int min) Sets minor version of the database server. -
applyRange
-