|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.openjpa.jdbc.sql.DBDictionary
public class DBDictionary
Class which allows the creation of SQL dynamically, in a database agnostic fashion. Subclass for the nuances of different data stores.
Nested Class Summary | |
---|---|
static class |
DBDictionary.SerializedData
Used by some mappings to represent data that has already been serialized so that we don't have to serialize multiple times. |
Fields inherited from interface org.apache.openjpa.jdbc.sql.JoinSyntaxes |
---|
SYNTAX_DATABASE, SYNTAX_SQL92, SYNTAX_TRADITIONAL |
Constructor Summary | |
---|---|
DBDictionary()
|
Method Summary | |
---|---|
String |
addCastAsType(String func,
Val val)
add CAST for a function operator where operand is a param |
void |
appendCast(SQLBuffer buf,
FilterValue 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 |
appendSelectRange(SQLBuffer buf,
long start,
long end)
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. |
void |
assertSupport(boolean feature,
String property)
Assert that the given dictionary flag is true. |
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 specified DataSource and releases any
resources associated with it. |
void |
comparison(SQLBuffer buf,
String op,
FilterValue lhs,
FilterValue rhs)
Append a comparison. |
void |
connectedConfiguration(Connection conn)
This method is called when the dictionary first sees any connection. |
protected String |
convertSchemaCase(String objectName)
Convert the specified schema name to a name that the database will be able to understand. |
Connection |
decorate(Connection conn)
Decorate the given connection if needed. |
void |
endConfiguration()
Invoked upon completion of bean property configuration for this object. |
String[] |
getAddColumnSQL(Column column)
Return a series of SQL statements to add the given column to its table. |
String[] |
getAddForeignKeySQL(ForeignKey fk)
Return a series of SQL statements to add the given foreign key to its table. |
String[] |
getAddPrimaryKeySQL(PrimaryKey pk)
Return a series of SQL statements to add the given primary key to its table. |
Array |
getArray(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
InputStream |
getAsciiStream(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
BigDecimal |
getBigDecimal(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
BigInteger |
getBigInteger(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
InputStream |
getBinaryStream(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Blob |
getBlob(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Object |
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 |
getByte(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
byte[] |
getBytes(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Calendar |
getCalendar(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
String |
getCastFunction(Val val,
String func)
Attach CAST to the current function if necessary |
protected String |
getCatalogNameForMetadata(String catalogName)
Returns the catalog name that will be used for obtaining information from DatabaseMetaData . |
char |
getChar(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Reader |
getCharacterStream(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Clob |
getClob(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
String |
getClobString(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
protected String |
getColumnNameForMetadata(String columnName)
Returns the column name that will be used for obtaining information from DatabaseMetaData . |
Column[] |
getColumns(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
String columnName,
Connection conn)
Reflect on the schema to find columns matching the given table and column patterns. |
String[] |
getCreateIndexSQL(Index index)
Return a series of SQL statements to create the given index. |
String[] |
getCreateSequenceSQL(Sequence seq)
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. |
Date |
getDate(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Date |
getDate(ResultSet rs,
int column,
Calendar cal)
Convert the specified column of the SQL ResultSet to the proper java type. |
protected String |
getDeclareColumnSQL(Column col,
boolean alter)
Return the declaration SQL for the given column. |
String[] |
getDeleteTableContentsSQL(Table[] tables)
Create SQL to delete the contents of the specified tables. |
double |
getDouble(ResultSet rs,
int column)
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)
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[] |
getDropPrimaryKeySQL(PrimaryKey pk)
Return a series of SQL statements to drop the given primary key from its table. |
String[] |
getDropSequenceSQL(Sequence seq)
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 |
getFloat(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
protected String |
getForeignKeyConstraintSQL(ForeignKey fk)
Return the declaration SQL for the given foreign key, or null if it is not supported. |
protected String |
getForUpdateClause(JDBCFetchConfiguration fetch,
boolean forUpdate)
Get the update clause for the query based on the updateClause and isolationLevel hints |
protected SQLBuffer |
getFrom(Select sel,
boolean forUpdate)
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. |
String |
getFullName(Index index)
Returns the full name of the index, including the schema (delimited by the result of catalogSeparator ). |
String |
getFullName(Sequence seq)
Returns the full name of the sequence, including the schema (delimited by the result of catalogSeparator ). |
String |
getFullName(Table table,
boolean logical)
Returns the full name of the table, including the schema (delimited by catalogSeparator ). |
Object |
getGeneratedKey(Column col,
Connection conn)
Return the last generated value for the given column. |
protected String |
getGeneratedKeySequenceName(Column col)
Return the sequence name used by databases for the given autoassigned column. |
ForeignKey[] |
getImportedKeys(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
Connection conn)
Reflect on the schema to return foreign keys imported by the given table pattern. |
Index[] |
getIndexInfo(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
boolean unique,
boolean approx,
Connection conn)
Reflect on the schema to find indexes matching the given table pattern. |
int |
getInt(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
int |
getJDBCType(int metaTypeCode,
boolean lob)
Return the preferred Types constant for the given
JavaTypes or JavaSQLTypes constant. |
Locale |
getLocale(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
long |
getLong(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
Number |
getNumber(ResultSet rs,
int column)
Returns the specified column value as an unknown numeric type; we try from the most generic to the least generic. |
Object |
getObject(ResultSet rs,
int column,
Map map)
Convert the specified column of the SQL ResultSet to the proper java type. |
String |
getPlaceholderValueString(Column col)
Return a SQL string to act as a placeholder for the given column. |
int |
getPreferredType(int type)
Return the preferred Types type for the given one. |
protected String |
getPrimaryKeyConstraintSQL(PrimaryKey pk)
Return the declaration SQL for the given primary key. |
PrimaryKey[] |
getPrimaryKeys(DatabaseMetaData meta,
String catalog,
String schemaName,
String 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)
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)
Reflect on the schema to find primary keys for the given table pattern. |
Ref |
getRef(ResultSet rs,
int column,
Map map)
Convert the specified column of the SQL ResultSet to the proper java type. |
protected String |
getSchemaNameForMetadata(String schemaName)
Returns the schema name that will be used for obtaining information from DatabaseMetaData . |
String |
getSelectOperation(JDBCFetchConfiguration fetch)
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. |
Sequence[] |
getSequences(DatabaseMetaData meta,
String catalog,
String schemaName,
String sequenceName,
Connection conn)
Reflect on the schema to find sequences matching the given name pattern. |
protected String |
getSequencesSQL(String schemaName,
String sequenceName)
Return the SQL needed to select the list of sequences. |
short |
getShort(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
String |
getString(ResultSet rs,
int column)
Convert the specified column of the SQL ResultSet to the proper java type. |
protected String |
getTableNameForMetadata(String tableName)
Returns the table name that will be used for obtaining information from DatabaseMetaData . |
Table[] |
getTables(DatabaseMetaData meta,
String catalog,
String schemaName,
String tableName,
Connection conn)
Reflect on the schema to find tables matching the given name pattern. |
Time |
getTime(ResultSet rs,
int column,
Calendar cal)
Convert the specified column of the SQL ResultSet to the proper java type. |
Timestamp |
getTimestamp(ResultSet rs,
int column,
Calendar cal)
Convert the specified column of the SQL ResultSet to the proper java type. |
String |
getTypeName(Column col)
Return the preferred database type name for the given column's type from Types . |
String |
getTypeName(int type)
Returns the type name for the specific constant as defined by Types . |
protected String |
getUniqueConstraintSQL(Unique unq)
Return the declaration SQL for the given unique constraint. |
String |
getValidColumnName(String name,
Table table)
Make any necessary changes to the given column name to make it valid for the current DB. |
String |
getValidForeignKeyName(String name,
Table table,
Table toTable)
Make any necessary changes to the given foreign key name to make it valid for the current DB. |
String |
getValidIndexName(String name,
Table table)
Make any necessary changes to the given index name to make it valid for the current DB. |
String |
getValidPrimaryKeyName(String name,
Table table)
Make any necessary changes to the given primary key name to make it valid for the current DB. |
String |
getValidSequenceName(String name,
Schema schema)
Make any necessary changes to the given sequence name to make it valid for the current DB. |
String |
getValidTableName(String name,
Schema schema)
Make any necessary changes to the given table name to make it valid for the current DB. |
String |
getValidUniqueName(String name,
Table table)
Make any necessary changes to the given unique constraint name to make it valid for the current DB. |
String |
getVersionColumn(Column column,
String tableAlias)
Return version column name |
protected SQLBuffer |
getWhere(Select sel,
boolean forUpdate)
Return the WHERE portion of the select statement, or null if no where conditions. |
void |
handleWarning(SQLWarning warning)
Implementation of the LoggingConnectionDecorator.SQLWarningHandler interface
that allows customization of the actions to perform when a
SQLWarning occurs at any point on a Connection ,
Statement , or ResultSet . |
void |
indexOf(SQLBuffer buf,
FilterValue str,
FilterValue find,
FilterValue start)
Invoke this database's indexOf function. |
boolean |
isSystemIndex(String name,
Table table)
This method is used to filter system indexes from database metadata. |
boolean |
isSystemSequence(String name,
String schema,
boolean targetSchema)
This method is used to filter system sequences from database metadata. |
boolean |
isSystemTable(String name,
String schema,
boolean targetSchema)
This method is used to filter system tables from database metadata. |
protected String |
makeNameValid(String 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. |
void |
mathFunction(SQLBuffer buf,
String op,
FilterValue lhs,
FilterValue rhs)
Append the numeric parts of a mathematical function. |
protected Column |
newColumn(ResultSet colMeta)
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 |
newIndex(ResultSet idxMeta)
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. |
OpenJPAException |
newStoreException(String msg,
SQLException[] causes,
Object failed)
Return a new exception that wraps causes . |
protected Table |
newTable(ResultSet tableMeta)
Create a new table from the information in the schema metadata. |
void |
putBytes(Object blob,
byte[] data)
Invoke the JDK 1.4 setBytes method on the given BLOB object. |
void |
putChars(Object clob,
char[] data)
Invoke the JDK 1.4 setCharacterStream method on the given
CLOB object. |
void |
putString(Object clob,
String data)
Invoke the JDK 1.4 setString 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[] |
serialize(Object val,
JDBCStore store)
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 |
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 |
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 |
setConfiguration(Configuration conf)
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 |
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 |
setLocale(PreparedStatement stmnt,
int idx,
Locale val,
Column col)
Set the given 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 |
setNull(PreparedStatement stmnt,
int idx,
int colType,
Column col)
Set the given value as a parameters 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 parameters to the statement. |
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. |
void |
setString(PreparedStatement stmnt,
int idx,
String val,
Column col)
Set the given value as a parameter to the statement. |
void |
setTime(PreparedStatement stmnt,
int idx,
Time val,
Calendar cal,
Column col)
Set the given value as a parameter to the statement. |
void |
setTimestamp(PreparedStatement stmnt,
int idx,
Timestamp val,
Calendar cal,
Column col)
Set the given value as a parameter to the statement. |
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 stmnt,
int idx,
Object val,
Column col)
Set a completely unknown parameter into a prepared statement. |
protected static String |
shorten(String name,
int targetLength)
Shorten the specified name to the specified target name. |
void |
startConfiguration()
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 end)
Invoke this database's substring function. |
boolean |
supportsDeleteAction(int action)
Whether this database supports the given foreign key delete action. |
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. |
SQLBuffer |
toDelete(ClassMapping mapping,
Select sel,
Object[] params)
Create a DELETE statement for the specified Select. |
SQLBuffer |
toNativeJoin(Join join)
Use the given join instance to create SQL joining its tables in the database's native syntax. |
protected 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. |
SQLBuffer |
toSelect(Select sel,
boolean forUpdate,
JDBCFetchConfiguration fetch)
Create a SELECT statement in the proper join syntax for the given instance. |
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. |
SQLBuffer |
toSelectCount(Select sel)
Create a SELECT COUNT statement in the proper join syntax for the given instance. |
SQLBuffer |
toSQL92Join(Join join,
boolean forUpdate,
boolean first)
Use the given join instance to create SQL joining its tables in the SQL92 style. |
SQLBuffer |
toTraditionalJoin(Join join)
Use the given join instance to create SQL joining its tables in the traditional style. |
SQLBuffer |
toUpdate(ClassMapping mapping,
Select sel,
JDBCStore store,
Object[] params,
Map updates)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final String VENDOR_OTHER
public static final String VENDOR_DATADIRECT
public static final String SCHEMA_CASE_UPPER
public static final String SCHEMA_CASE_LOWER
public static final String SCHEMA_CASE_PRESERVE
public static final String CONS_NAME_BEFORE
public static final String CONS_NAME_MID
public static final String CONS_NAME_AFTER
protected static final int RANGE_POST_SELECT
protected static final int RANGE_PRE_DISTINCT
protected static final int RANGE_POST_DISTINCT
protected static final int RANGE_POST_LOCK
protected static final int NANO
protected static final int MICRO
protected static final int MILLI
protected static final int CENTI
protected static final int DECI
protected static final int SEC
protected static final int NAME_ANY
protected static final int NAME_TABLE
protected static final int NAME_SEQUENCE
public String platform
public String driverVendor
public String catalogSeparator
public boolean createPrimaryKeys
public String constraintNameMode
public int maxTableNameLength
public int maxColumnNameLength
public int maxConstraintNameLength
public int maxIndexNameLength
public int maxIndexesPerTable
public boolean supportsForeignKeys
public boolean supportsTimestampNanos
public boolean supportsUniqueConstraints
public boolean supportsDeferredConstraints
public boolean supportsRestrictDeleteAction
public boolean supportsCascadeDeleteAction
public boolean supportsNullDeleteAction
public boolean supportsDefaultDeleteAction
public boolean supportsRestrictUpdateAction
public boolean supportsCascadeUpdateAction
public boolean supportsNullUpdateAction
public boolean supportsDefaultUpdateAction
public boolean supportsAlterTableWithAddColumn
public boolean supportsAlterTableWithDropColumn
public String reservedWords
public String systemSchemas
public String systemTables
public String fixedSizeTypeNames
public String schemaCase
public String validationSQL
public String closePoolSQL
public String initializationSQL
public int joinSyntax
public String outerJoinClause
public String innerJoinClause
public String crossJoinClause
public boolean requiresConditionForCrossJoin
public String forUpdateClause
public String tableForUpdateClause
public String distinctCountColumnSeparator
public boolean supportsSelectForUpdate
public boolean supportsLockingWithDistinctClause
public boolean supportsLockingWithMultipleTables
public boolean supportsLockingWithOrderClause
public boolean supportsLockingWithOuterJoin
public boolean supportsLockingWithInnerJoin
public boolean supportsLockingWithSelectRange
public boolean supportsQueryTimeout
public boolean simulateLocking
public boolean supportsSubselect
public boolean supportsCorrelatedSubselect
public boolean supportsHaving
public boolean supportsSelectStartIndex
public boolean supportsSelectEndIndex
public int rangePosition
public boolean requiresAliasForSubselect
public boolean allowsAliasInBulkClause
public boolean supportsMultipleNontransactionalResultSets
public String searchStringEscape
public boolean requiresCastForMathFunctions
public boolean requiresCastForComparisons
public boolean supportsModOperator
public boolean supportsXMLColumn
public String castFunction
public String toLowerCaseFunction
public String toUpperCaseFunction
public String stringLengthFunction
public String bitLengthFunction
public String trimLeadingFunction
public String trimTrailingFunction
public String trimBothFunction
public String concatenateFunction
public String concatenateDelimiter
public String substringFunctionName
public String currentDateFunction
public String currentTimeFunction
public String currentTimestampFunction
public String dropTableSQL
public boolean storageLimitationsFatal
public boolean storeLargeNumbersAsStrings
public boolean storeCharsAsNumbers
public boolean useGetBytesForBlobs
public boolean useSetBytesForBlobs
public boolean useGetObjectForBlobs
public boolean useGetStringForClobs
public boolean useSetStringForClobs
public int maxEmbeddedBlobSize
public int maxEmbeddedClobSize
public int inClauseLimit
public int datePrecision
public int characterColumnSize
public String arrayTypeName
public String bigintTypeName
public String binaryTypeName
public String bitTypeName
public String blobTypeName
public String booleanTypeName
public String charTypeName
public String clobTypeName
public String dateTypeName
public String decimalTypeName
public String distinctTypeName
public String doubleTypeName
public String floatTypeName
public String integerTypeName
public String javaObjectTypeName
public String longVarbinaryTypeName
public String longVarcharTypeName
public String nullTypeName
public String numericTypeName
public String otherTypeName
public String realTypeName
public String refTypeName
public String smallintTypeName
public String structTypeName
public String timeTypeName
public String timestampTypeName
public String tinyintTypeName
public String varbinaryTypeName
public String varcharTypeName
public String xmlTypeName
public String getStringVal
public boolean useSchemaName
public String tableTypes
public boolean supportsSchemaForGetTables
public boolean supportsSchemaForGetColumns
public boolean supportsNullTableForGetColumns
public boolean supportsNullTableForGetPrimaryKeys
public boolean supportsNullTableForGetIndexInfo
public boolean supportsNullTableForGetImportedKeys
public boolean useGetBestRowIdentifierForPrimaryKeys
public boolean requiresAutoCommitForMetaData
public int maxAutoAssignNameLength
public String autoAssignClause
public String autoAssignTypeName
public boolean supportsAutoAssign
public String lastGeneratedKeyQuery
public String nextSequenceQuery
public String sequenceSQL
public String sequenceSchemaSQL
public String sequenceNameSQL
protected JDBCConfiguration conf
protected Log log
protected boolean connected
protected final Set reservedWordSet
protected final Set systemSchemaSet
protected final Set systemTableSet
protected final Set fixedSizeTypeNameSet
Constructor Detail |
---|
public DBDictionary()
Method Detail |
---|
public void connectedConfiguration(Connection conn) throws SQLException
super.connectedConfiguration
.
SQLException
public Array getArray(ResultSet rs, int column) throws SQLException
SQLException
public InputStream getAsciiStream(ResultSet rs, int column) throws SQLException
SQLException
public BigDecimal getBigDecimal(ResultSet rs, int column) throws SQLException
SQLException
public Number getNumber(ResultSet rs, int column) throws SQLException
SQLException
public BigInteger getBigInteger(ResultSet rs, int column) throws SQLException
SQLException
public InputStream getBinaryStream(ResultSet rs, int column) throws SQLException
SQLException
public Blob getBlob(ResultSet rs, int column) throws SQLException
SQLException
public Object getBlobObject(ResultSet rs, int column, JDBCStore store) throws SQLException
SQLException
public boolean getBoolean(ResultSet rs, int column) throws SQLException
SQLException
public byte getByte(ResultSet rs, int column) throws SQLException
SQLException
public byte[] getBytes(ResultSet rs, int column) throws SQLException
SQLException
public Calendar getCalendar(ResultSet rs, int column) throws SQLException
Timestamp
by default.
SQLException
public char getChar(ResultSet rs, int column) throws SQLException
SQLException
public Reader getCharacterStream(ResultSet rs, int column) throws SQLException
SQLException
public Clob getClob(ResultSet rs, int column) throws SQLException
SQLException
public String getClobString(ResultSet rs, int column) throws SQLException
SQLException
public Date getDate(ResultSet rs, int column) throws SQLException
Timestamp
by default.
SQLException
public Date getDate(ResultSet rs, int column, Calendar cal) throws SQLException
SQLException
public double getDouble(ResultSet rs, int column) throws SQLException
SQLException
public float getFloat(ResultSet rs, int column) throws SQLException
SQLException
public int getInt(ResultSet rs, int column) throws SQLException
SQLException
public Locale getLocale(ResultSet rs, int column) throws SQLException
SQLException
public long getLong(ResultSet rs, int column) throws SQLException
SQLException
public Object getObject(ResultSet rs, int column, Map map) throws SQLException
SQLException
public Ref getRef(ResultSet rs, int column, Map map) throws SQLException
SQLException
public short getShort(ResultSet rs, int column) throws SQLException
SQLException
public String getString(ResultSet rs, int column) throws SQLException
SQLException
public Time getTime(ResultSet rs, int column, Calendar cal) throws SQLException
SQLException
public Timestamp getTimestamp(ResultSet rs, int column, Calendar cal) throws SQLException
SQLException
public void setArray(PreparedStatement stmnt, int idx, Array val, Column col) throws SQLException
SQLException
public void setAsciiStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) throws SQLException
SQLException
public void setBigDecimal(PreparedStatement stmnt, int idx, BigDecimal val, Column col) throws SQLException
SQLException
public void setBigInteger(PreparedStatement stmnt, int idx, BigInteger val, Column col) throws SQLException
SQLException
public void setBinaryStream(PreparedStatement stmnt, int idx, InputStream val, int length, Column col) throws SQLException
SQLException
public void setBlob(PreparedStatement stmnt, int idx, Blob val, Column col) throws SQLException
SQLException
public void setBlobObject(PreparedStatement stmnt, int idx, Object val, Column col, JDBCStore store) throws SQLException
serialize(java.lang.Object, org.apache.openjpa.jdbc.kernel.JDBCStore)
method to serialize the value.
SQLException
public void setBoolean(PreparedStatement stmnt, int idx, boolean val, Column col) throws SQLException
SQLException
public void setByte(PreparedStatement stmnt, int idx, byte val, Column col) throws SQLException
SQLException
public void setBytes(PreparedStatement stmnt, int idx, byte[] val, Column col) throws SQLException
SQLException
public void setChar(PreparedStatement stmnt, int idx, char val, Column col) throws SQLException
SQLException
public void setCharacterStream(PreparedStatement stmnt, int idx, Reader val, int length, Column col) throws SQLException
SQLException
public void setClob(PreparedStatement stmnt, int idx, Clob val, Column col) throws SQLException
SQLException
public void setClobString(PreparedStatement stmnt, int idx, String val, Column col) throws SQLException
SQLException
public void setDate(PreparedStatement stmnt, int idx, Date val, Column col) throws SQLException
SQLException
public void setDate(PreparedStatement stmnt, int idx, Date val, Calendar cal, Column col) throws SQLException
SQLException
public void setCalendar(PreparedStatement stmnt, int idx, Calendar val, Column col) throws SQLException
SQLException
public void setDouble(PreparedStatement stmnt, int idx, double val, Column col) throws SQLException
SQLException
public void setFloat(PreparedStatement stmnt, int idx, float val, Column col) throws SQLException
SQLException
public void setInt(PreparedStatement stmnt, int idx, int val, Column col) throws SQLException
SQLException
public void setLong(PreparedStatement stmnt, int idx, long val, Column col) throws SQLException
SQLException
public void setLocale(PreparedStatement stmnt, int idx, Locale val, Column col) throws SQLException
SQLException
public void setNull(PreparedStatement stmnt, int idx, int colType, Column col) throws SQLException
Types
.
SQLException
public void setNumber(PreparedStatement stmnt, int idx, Number num, Column col) throws SQLException
SQLException
public void setObject(PreparedStatement stmnt, int idx, Object val, int colType, Column col) throws SQLException
Types
.
SQLException
public void setRef(PreparedStatement stmnt, int idx, Ref val, Column col) throws SQLException
SQLException
public void setShort(PreparedStatement stmnt, int idx, short val, Column col) throws SQLException
SQLException
public void setString(PreparedStatement stmnt, int idx, String val, Column col) throws SQLException
SQLException
public void setTime(PreparedStatement stmnt, int idx, Time val, Calendar cal, Column col) throws SQLException
SQLException
public void setTimestamp(PreparedStatement stmnt, int idx, Timestamp val, Calendar cal, Column col) throws SQLException
SQLException
public void setTyped(PreparedStatement stmnt, int idx, Object val, Column col, int type, JDBCStore store) throws SQLException
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
SQLException
public void setUnknown(PreparedStatement stmnt, int idx, Object val, Column col) throws SQLException
SQLException
public byte[] serialize(Object val, JDBCStore store) throws SQLException
SQLException
public void putBytes(Object blob, byte[] data) throws SQLException
setBytes
method on the given BLOB object.
SQLException
public void putString(Object clob, String data) throws SQLException
setString
method on the given CLOB
object.
SQLException
public void putChars(Object clob, char[] data) throws SQLException
setCharacterStream
method on the given
CLOB object.
SQLException
protected void storageWarning(Object orig, Object converted)
public int getJDBCType(int metaTypeCode, boolean lob)
Types
constant for the given
JavaTypes
or JavaSQLTypes
constant.
public int getPreferredType(int type)
Types
type for the given one. Returns
the given type by default.
public String getTypeName(Column col)
Types
.
public String getTypeName(int type)
Types
.
type
- the type
protected String appendSize(Column col, String typeName)
fixedSizeTypeNameSet
).
public void setJoinSyntax(String syntax)
public String getPlaceholderValueString(Column col)
public SQLBuffer toSelectCount(Select sel)
public SQLBuffer toDelete(ClassMapping mapping, Select sel, Object[] params)
public SQLBuffer toUpdate(ClassMapping mapping, Select sel, JDBCStore store, Object[] params, Map updates)
protected SQLBuffer toBulkOperation(ClassMapping mapping, Select sel, JDBCStore store, Object[] params, Map updateParams)
mapping
- the mappng 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
protected void appendUpdates(Select sel, JDBCStore store, SQLBuffer sql, Object[] params, Map updateParams, boolean allowAlias)
public String[] getDeleteTableContentsSQL(Table[] tables)
public SQLBuffer toSelect(Select sel, boolean forUpdate, JDBCFetchConfiguration fetch)
protected SQLBuffer getFrom(Select sel, boolean forUpdate)
protected SQLBuffer getFromSelect(Select sel, boolean forUpdate)
protected SQLBuffer getWhere(Select sel, boolean forUpdate)
public SQLBuffer toTraditionalJoin(Join join)
public SQLBuffer toSQL92Join(Join join, boolean forUpdate, boolean first)
public SQLBuffer toNativeJoin(Join join)
public boolean canOuterJoin(int syntax, ForeignKey fk)
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)
protected String getForUpdateClause(JDBCFetchConfiguration fetch, boolean forUpdate)
public String getSelectOperation(JDBCFetchConfiguration fetch)
protected SQLBuffer toOperation(String op, SQLBuffer selects, SQLBuffer from, SQLBuffer where, SQLBuffer group, SQLBuffer having, SQLBuffer order, boolean distinct, long start, long end, String forUpdateClause)
protected void appendSelectRange(SQLBuffer buf, long start, long end)
protected SQLBuffer getSelects(Select sel, boolean distinctIdentifiers, boolean forUpdate)
public boolean supportsLocking(Select sel)
public boolean supportsRandomAccessResultSet(Select sel, boolean forUpdate)
public void assertSupport(boolean feature, String property)
public void substring(SQLBuffer buf, FilterValue str, FilterValue start, FilterValue end)
buf
- the SQL buffer to write the substring invocation tostr
- a query value representing the target stringstart
- a query value representing the start indexend
- a query value representing the end index, or null for nonepublic void indexOf(SQLBuffer buf, FilterValue str, FilterValue find, FilterValue start)
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 beginningpublic void mathFunction(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs)
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 functionpublic void comparison(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs)
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 comparisonpublic void appendXmlComparison(SQLBuffer buf, String op, FilterValue lhs, FilterValue rhs, boolean lhsxml, boolean rhsxml)
protected void appendNumericCast(SQLBuffer buf, FilterValue val)
public void appendCast(SQLBuffer buf, FilterValue val, int type)
buf
- the buffer to append the cast toval
- the value to casttype
- the type of the case, e.g. Types.NUMERIC
protected void appendLength(SQLBuffer buf, int type)
public String addCastAsType(String func, Val val)
func
- function nameval
-
public void refSchemaComponents(Table table)
public String getFullName(Table table, boolean logical)
catalogSeparator
).
public String getFullName(Index index)
catalogSeparator
).
public String getFullName(Sequence seq)
catalogSeparator
).
public String getValidTableName(String name, Schema schema)
public String getValidSequenceName(String name, Schema schema)
public String getValidColumnName(String name, Table table)
public String getValidPrimaryKeyName(String name, Table table)
public String getValidForeignKeyName(String name, Table table, Table toTable)
public String getValidIndexName(String name, Table table)
public String getValidUniqueName(String name, Table table)
protected static String shorten(String name, int targetLength)
protected String makeNameValid(String name, NameSet set, int maxLen, int nameType)
public String[] getCreateTableSQL(Table table)
public String[] getDropTableSQL(Table table)
DROP TABLE <table name>
by default.
public String[] getCreateSequenceSQL(Sequence seq)
CREATE SEQUENCE <sequence name>[ START WITH <start>]
[ INCREMENT BY <increment>]
by default.
public String[] getDropSequenceSQL(Sequence seq)
DROP SEQUENCE <sequence name>
by default.
public String[] getCreateIndexSQL(Index index)
CREATE [UNIQUE] INDEX <index name> ON <table name>
(<col list>)
by default.
public String[] getDropIndexSQL(Index index)
DROP INDEX <index name>
by default.
public String[] getAddColumnSQL(Column column)
ALTER TABLE <table name> ADD (<col dec>)
by default.
public String[] getDropColumnSQL(Column column)
ALTER TABLE <table name> DROP COLUMN <col name>
by default.
public String[] getAddPrimaryKeySQL(PrimaryKey pk)
ALTER TABLE <table name> ADD
<pk cons sql >
by default.
public String[] getDropPrimaryKeySQL(PrimaryKey pk)
ALTER TABLE <table name> DROP CONSTRAINT
<pk name>
by default.
public String[] getAddForeignKeySQL(ForeignKey fk)
ALTER TABLE <table name> ADD
<fk cons sql >
by default.
public String[] getDropForeignKeySQL(ForeignKey fk)
ALTER TABLE <table name> DROP CONSTRAINT
<fk name>
by default.
protected String getDeclareColumnSQL(Column col, boolean alter)
getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)
and
getAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)
.
protected String getPrimaryKeyConstraintSQL(PrimaryKey pk)
getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)
and
getAddPrimaryKeySQL(org.apache.openjpa.jdbc.schema.PrimaryKey)
. Returns
CONSTRAINT <pk name> PRIMARY KEY (<col list>)
by default.
protected String getForeignKeyConstraintSQL(ForeignKey fk)
getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)
and getAddForeignKeySQL(org.apache.openjpa.jdbc.schema.ForeignKey)
. Returns
CONSTRAINT <cons name> FOREIGN KEY (<col list>)
REFERENCES <foreign table> (<col list>)
[ON DELETE <action>] [ON UPDATE <action>]
by default.
public boolean supportsDeleteAction(int action)
public boolean supportsUpdateAction(int action)
protected String getUniqueConstraintSQL(Unique unq)
getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)
.
Returns CONSTRAINT <name> UNIQUE (<col list>)
by default.
public boolean isSystemTable(String name, String schema, boolean targetSchema)
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 schemaspublic boolean isSystemIndex(String name, Table table)
name
- the index nametable
- the index tablepublic boolean isSystemSequence(String name, String schema, boolean targetSchema)
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 schemaspublic Table[] getTables(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException
SQLException
protected Table newTable(ResultSet tableMeta) throws SQLException
SQLException
public Sequence[] getSequences(DatabaseMetaData meta, String catalog, String schemaName, String sequenceName, Connection conn) throws SQLException
SQLException
protected Sequence newSequence(ResultSet sequenceMeta) throws SQLException
SQLException
protected String getSequencesSQL(String schemaName, String sequenceName)
public Column[] getColumns(DatabaseMetaData meta, String catalog, String schemaName, String tableName, String columnName, Connection conn) throws SQLException
SQLException
protected Column newColumn(ResultSet colMeta) throws SQLException
SQLException
public PrimaryKey[] getPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException
SQLException
protected PrimaryKey[] getPrimaryKeysFromGetPrimaryKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException
SQLException
protected PrimaryKey newPrimaryKey(ResultSet pkMeta) throws SQLException
SQLException
protected PrimaryKey[] getPrimaryKeysFromBestRowIdentifier(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException
SQLException
public Index[] getIndexInfo(DatabaseMetaData meta, String catalog, String schemaName, String tableName, boolean unique, boolean approx, Connection conn) throws SQLException
SQLException
protected Index newIndex(ResultSet idxMeta) throws SQLException
SQLException
public ForeignKey[] getImportedKeys(DatabaseMetaData meta, String catalog, String schemaName, String tableName, Connection conn) throws SQLException
SQLException
protected ForeignKey newForeignKey(ResultSet fkMeta) throws SQLException
SQLException
protected String getTableNameForMetadata(String tableName)
DatabaseMetaData
.
protected String getSchemaNameForMetadata(String schemaName)
DatabaseMetaData
.
protected String getCatalogNameForMetadata(String catalogName)
DatabaseMetaData
.
protected String getColumnNameForMetadata(String columnName)
DatabaseMetaData
.
protected String convertSchemaCase(String objectName)
public Object getGeneratedKey(Column col, Connection conn) throws SQLException
lastGeneratedKeyQuery
is null.
SQLException
protected String getGeneratedKeySequenceName(Column col)
public void setConfiguration(Configuration conf)
Configurable
setConfiguration
in interface Configurable
public void startConfiguration()
Configurable
startConfiguration
in interface Configurable
public void endConfiguration()
Configurable
endConfiguration
in interface Configurable
public Connection decorate(Connection conn) throws SQLException
initializationSQL
that has been set for the dictionary but
does not decoreate the connection.
decorate
in interface ConnectionDecorator
SQLException
public void handleWarning(SQLWarning warning) throws SQLException
LoggingConnectionDecorator.SQLWarningHandler
interface
that allows customization of the actions to perform when a
SQLWarning
occurs at any point on a Connection
,
Statement
, or ResultSet
. 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.
handleWarning
in interface LoggingConnectionDecorator.SQLWarningHandler
SQLException
LoggingConnectionDecorator.setWarningAction(java.lang.String)
,
LoggingConnectionDecorator.setWarningHandler(org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.SQLWarningHandler)
public OpenJPAException newStoreException(String msg, SQLException[] causes, Object failed)
causes
.
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 in causes
.
public void closeDataSource(DataSource dataSource)
DataSource
and releases any
resources associated with it.
dataSource
- the DataSource to closepublic String getVersionColumn(Column column, String tableAlias)
column
- tableAlias
- : this is needed for platform specific version column
public String getCastFunction(Val val, String func)
val
- operand value
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |