org.apache.openjpa.jdbc.sql
Class SybaseDictionary
java.lang.Object
org.apache.openjpa.jdbc.sql.DBDictionary
org.apache.openjpa.jdbc.sql.AbstractSQLServerDictionary
org.apache.openjpa.jdbc.sql.SybaseDictionary
- All Implemented Interfaces:
- JoinSyntaxes, org.apache.openjpa.lib.conf.Configurable, org.apache.openjpa.lib.jdbc.ConnectionDecorator, org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.SQLWarningHandler
public class SybaseDictionary
- extends AbstractSQLServerDictionary
Dictionary for Sybase.
The main point of interest is that by default, every table
that is created will have a unique column named "UNQ_INDEX" of
the "IDENTITY" type. OpenJPA will not ever utilize this column. However,
due to internal Sybase restrictions, this column is required
in order to support pessimistic (datastore) locking, since Sybase
requires that any tables in a "SELECT ... FOR UPDATE" clause have
a unique index that is not included in the list
of columns, as described in the
Sybase documentation. This behavior can be surpressed by setting the
dictionary property CreateIdentityColumn=false
. The
name of the unique column can be changed by setting the property
IdentityColumnName=COLUMN_NAME
.
A good Sybase type reference is can be found here.
Field Summary |
boolean |
createIdentityColumn
If true, then whenever the schematool creates a
table, it will append an additional IDENTITY column to the
table's creation SQL. |
java.lang.String |
identityColumnName
If createIdentityColumn is true, then the
identityColumnName will be the name of the
additional unique column that will be created. |
Fields inherited from class org.apache.openjpa.jdbc.sql.DBDictionary |
allowsAliasInBulkClause, arrayTypeName, autoAssignClause, autoAssignTypeName, bigintTypeName, binaryTypeName, bitLengthFunction, bitTypeName, blobTypeName, booleanTypeName, castFunction, catalogSeparator, CENTI, characterColumnSize, charTypeName, clobTypeName, closePoolSQL, concatenateDelimiter, concatenateFunction, conf, connected, CONS_NAME_AFTER, CONS_NAME_BEFORE, CONS_NAME_MID, constraintNameMode, createPrimaryKeys, crossJoinClause, currentDateFunction, currentTimeFunction, currentTimestampFunction, datePrecision, dateTypeName, DECI, decimalTypeName, distinctCountColumnSeparator, distinctTypeName, doubleTypeName, driverVendor, dropTableSQL, fixedSizeTypeNames, fixedSizeTypeNameSet, floatTypeName, forUpdateClause, initializationSQL, innerJoinClause, integerTypeName, javaObjectTypeName, joinSyntax, lastGeneratedKeyQuery, log, longVarbinaryTypeName, longVarcharTypeName, maxAutoAssignNameLength, maxColumnNameLength, maxConstraintNameLength, maxEmbeddedBlobSize, maxEmbeddedClobSize, maxIndexesPerTable, maxIndexNameLength, maxTableNameLength, MICRO, MILLI, NAME_ANY, NAME_SEQUENCE, NAME_TABLE, NANO, nextSequenceQuery, nullTypeName, numericTypeName, otherTypeName, outerJoinClause, platform, RANGE_POST_DISTINCT, RANGE_POST_SELECT, RANGE_PRE_DISTINCT, rangePosition, realTypeName, refTypeName, requiresAliasForSubselect, requiresAutoCommitForMetaData, requiresCastForComparisons, requiresCastForMathFunctions, requiresConditionForCrossJoin, reservedWords, reservedWordSet, SCHEMA_CASE_LOWER, SCHEMA_CASE_PRESERVE, SCHEMA_CASE_UPPER, schemaCase, searchStringEscape, SEC, simulateLocking, smallintTypeName, storageLimitationsFatal, storeCharsAsNumbers, storeLargeNumbersAsStrings, stringLengthFunction, structTypeName, substringFunctionName, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsAutoAssign, supportsCascadeDeleteAction, supportsCascadeUpdateAction, supportsCorrelatedSubselect, supportsDefaultDeleteAction, supportsDefaultUpdateAction, supportsDeferredConstraints, supportsForeignKeys, supportsHaving, supportsLockingWithDistinctClause, supportsLockingWithInnerJoin, supportsLockingWithMultipleTables, supportsLockingWithOrderClause, supportsLockingWithOuterJoin, supportsLockingWithSelectRange, supportsModOperator, supportsMultipleNontransactionalResultSets, supportsNullDeleteAction, supportsNullTableForGetColumns, supportsNullTableForGetImportedKeys, supportsNullTableForGetIndexInfo, supportsNullTableForGetPrimaryKeys, supportsNullUpdateAction, supportsQueryTimeout, supportsRestrictDeleteAction, supportsRestrictUpdateAction, supportsSchemaForGetColumns, supportsSchemaForGetTables, supportsSelectEndIndex, supportsSelectForUpdate, supportsSelectStartIndex, supportsSubselect, supportsUniqueConstraints, systemSchemas, systemSchemaSet, systemTables, systemTableSet, tableForUpdateClause, tableTypes, timestampTypeName, timeTypeName, tinyintTypeName, toLowerCaseFunction, toUpperCaseFunction, trimBothFunction, trimLeadingFunction, trimTrailingFunction, useGetBestRowIdentifierForPrimaryKeys, useGetBytesForBlobs, useGetObjectForBlobs, useGetStringForClobs, useSchemaName, useSetBytesForBlobs, useSetStringForClobs, validationSQL, varbinaryTypeName, varcharTypeName, VENDOR_DATADIRECT, VENDOR_OTHER |
Method Summary |
java.sql.Connection |
decorate(java.sql.Connection conn)
Decorate the given connection if needed. |
void |
endConfiguration()
|
java.lang.String[] |
getAddForeignKeySQL(ForeignKey fk)
Return a series of SQL statements to add the given foreign key to
its table. |
java.lang.String[] |
getCreateTableSQL(Table table)
Return a series of SQL statements to create the given table, complete
with columns. |
protected java.lang.String |
getDeclareColumnSQL(Column col,
boolean alter)
Return the declaration SQL for the given column. |
java.lang.String[] |
getDropColumnSQL(Column column)
Return a series of SQL statements to drop the given column from
its table. |
int |
getJDBCType(int metaTypeCode,
boolean lob)
Return the preferred Types constant for the given
JavaTypes or JavaSQLTypes constant. |
void |
refSchemaComponents(Table table)
Increment the reference count of any table components that this
dictionary adds that are not used by mappings. |
void |
setBigInteger(java.sql.PreparedStatement stmnt,
int idx,
java.math.BigInteger val,
Column col)
Set the given value as a parameter to the statement. |
Methods inherited from class org.apache.openjpa.jdbc.sql.DBDictionary |
appendCast, appendNumericCast, appendSize, appendUpdates, assertSupport, canOuterJoin, closeDataSource, comparison, connectedConfiguration, convertSchemaCase, getAddColumnSQL, getAddPrimaryKeySQL, getArray, getAsciiStream, getBigDecimal, getBigInteger, getBinaryStream, getBlob, getBlobObject, getBoolean, getByte, getBytes, getCalendar, getCatalogNameForMetadata, getChar, getCharacterStream, getClob, getClobString, getColumnNameForMetadata, getCreateIndexSQL, getCreateSequenceSQL, getDate, getDate, getDouble, getDropForeignKeySQL, getDropIndexSQL, getDropPrimaryKeySQL, getDropSequenceSQL, getDropTableSQL, getFloat, getForeignKeyConstraintSQL, getFrom, getFromSelect, getFullName, getFullName, getGeneratedKey, getGeneratedKeySequenceName, getImportedKeys, getIndexInfo, getInt, getLocale, getLong, getNumber, getObject, getPlaceholderValueString, getPreferredType, getPrimaryKeyConstraintSQL, getPrimaryKeys, getPrimaryKeysFromBestRowIdentifier, getPrimaryKeysFromGetPrimaryKeys, getRef, getSchemaNameForMetadata, getSelectOperation, getSelects, getSequences, getSequencesSQL, getShort, getString, getTableNameForMetadata, getTables, getTime, getTimestamp, getTypeName, getTypeName, getUniqueConstraintSQL, getValidColumnName, getValidForeignKeyName, getValidIndexName, getValidPrimaryKeyName, getValidSequenceName, getValidTableName, getValidUniqueName, getWhere, handleWarning, isSystemIndex, isSystemSequence, isSystemTable, makeNameValid, mathFunction, newColumn, newForeignKey, newIndex, newPrimaryKey, newSequence, newStoreException, newTable, putBytes, putChars, putString, serialize, setArray, setAsciiStream, setBigDecimal, setBinaryStream, setBlob, setBlobObject, setBoolean, setByte, setBytes, setCalendar, setChar, setCharacterStream, setClob, setClobString, setConfiguration, setDate, setDate, setDouble, setFloat, setInt, setJoinSyntax, setLocale, setLong, setNumber, setObject, setRef, setShort, setString, setTime, setTimestamp, setTyped, setUnknown, shorten, startConfiguration, storageWarning, supportsDeleteAction, supportsLocking, supportsRandomAccessResultSet, supportsUpdateAction, toBulkOperation, toDelete, toNativeJoin, toOperation, toSelect, toSelect, toSelectCount, toSQL92Join, toTraditionalJoin, toUpdate |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
createIdentityColumn
public boolean createIdentityColumn
- If true, then whenever the
schematool
creates a
table, it will append an additional IDENTITY column to the
table's creation SQL. This is so Sybase will be able to
perform SELECT...FOR UPDATE
statements.
identityColumnName
public java.lang.String identityColumnName
- If
createIdentityColumn
is true, then the
identityColumnName
will be the name of the
additional unique column that will be created.
SybaseDictionary
public SybaseDictionary()
getJDBCType
public int getJDBCType(int metaTypeCode,
boolean lob)
- Description copied from class:
DBDictionary
- Return the preferred
Types
constant for the given
JavaTypes
or JavaSQLTypes
constant.
- Overrides:
getJDBCType
in class DBDictionary
setBigInteger
public void setBigInteger(java.sql.PreparedStatement stmnt,
int idx,
java.math.BigInteger val,
Column col)
throws java.sql.SQLException
- Description copied from class:
DBDictionary
- Set the given value as a parameter to the statement.
- Overrides:
setBigInteger
in class DBDictionary
- Throws:
java.sql.SQLException
getAddForeignKeySQL
public java.lang.String[] getAddForeignKeySQL(ForeignKey fk)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to add the given foreign key to
its table. Return an empty array if operation not supported.
Returns
ALTER TABLE <table name> ADD
<fk cons sql >
by default.
- Overrides:
getAddForeignKeySQL
in class DBDictionary
getCreateTableSQL
public java.lang.String[] getCreateTableSQL(Table table)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to create the given table, complete
with columns. Indexes and constraints will be created separately.
- Overrides:
getCreateTableSQL
in class DBDictionary
getDeclareColumnSQL
protected java.lang.String getDeclareColumnSQL(Column col,
boolean alter)
- Description copied from class:
DBDictionary
- Return the declaration SQL for the given column. This method is used
for each column from within
DBDictionary.getCreateTableSQL(org.apache.openjpa.jdbc.schema.Table)
and
DBDictionary.getAddColumnSQL(org.apache.openjpa.jdbc.schema.Column)
.
- Overrides:
getDeclareColumnSQL
in class DBDictionary
getDropColumnSQL
public java.lang.String[] getDropColumnSQL(Column column)
- Description copied from class:
DBDictionary
- Return a series of SQL statements to drop the given column from
its table. Return an empty array if operation not supported. Returns
ALTER TABLE <table name> DROP COLUMN <col name>
by default.
- Overrides:
getDropColumnSQL
in class DBDictionary
refSchemaComponents
public void refSchemaComponents(Table table)
- Description copied from class:
DBDictionary
- Increment the reference count of any table components that this
dictionary adds that are not used by mappings. Does nothing by default.
- Overrides:
refSchemaComponents
in class DBDictionary
endConfiguration
public void endConfiguration()
- Specified by:
endConfiguration
in interface org.apache.openjpa.lib.conf.Configurable
- Overrides:
endConfiguration
in class DBDictionary
decorate
public java.sql.Connection decorate(java.sql.Connection conn)
throws java.sql.SQLException
- Description copied from class:
DBDictionary
- Decorate the given connection if needed. Some databases require special
handling for JDBC bugs. This implementation issues any
DBDictionary.initializationSQL
that has been set for the dictionary but
does not decoreate the connection.
- Specified by:
decorate
in interface org.apache.openjpa.lib.jdbc.ConnectionDecorator
- Overrides:
decorate
in class DBDictionary
- Throws:
java.sql.SQLException
Copyright © 2006 Apache Software Foundation. All Rights Reserved.