Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.hibernate.dialect
Class SybaseASE15Dialect

    java.lang.Object
      org.hibernate.dialect.Dialect
          org.hibernate.dialect.SybaseASE15Dialect

All Implemented Interfaces:
  ConversionContext

Direct Known Subclasses:
  SybaseASE157Dialect

    public class SybaseASE15Dialect

extends Dialect

An SQL dialect targeting Sybase Adaptive Server Enterprise (ASE) 15 and higher.

TODO : verify if this also works with 12/12.5

Field Summary

Fields inherited from class org.hibernate.dialect.Dialect
`CLOSED_QUOTE, DEFAULT_BATCH_SIZE, LEGACY_LOB_MERGE_STRATEGY, NEW_LOCATOR_LOB_MERGE_STRATEGY, NO_BATCH, QUOTE, STREAM_XFER_LOB_MERGE_STRATEGY`

Constructor Summary
`SybaseASE15Dialect()`

Method Summary
`String` | `appendIdentitySelectToInsert(String insertSQL)` Provided we `Dialect.supportsInsertSelectIdentity()`, then attach the "select identity" clause to the insert statement.
`String` | `appendLockHint(LockMode mode, String tableName)` Some dialects support an alternative means to `SELECT FOR UPDATE`, whereby a "lock hint" is appends to the table name in the from clause.
`String` | `applyLocksToSql(String sql, LockOptions aliasedLockOptions, Map keyColumnNames)` Modifies the given SQL by applying the appropriate updates for the specified lock modes and key columns.
`boolean` | `areStringComparisonsCaseInsensitive()` By default, Sybase string comparisons are case-insensitive.
`boolean` | `doesReadCommittedCauseWritersToBlockReaders()` For the underlying database, is READ_COMMITTED isolation implemented by forcing readers to wait for write locks to be released?
`boolean` | `doesRepeatableReadCauseReadersToBlockWriters()` For the underlying database, is REPEATABLE_READ isolation implemented by forcing writers to wait for read locks to be released?
`boolean` | `dropTemporaryTableAfterUse()` Do we need to drop the temporary table after use?
`String` | `generateTemporaryTableName(String baseTableName)` Generate a temporary table name given the base table.
`String` | `getAddColumnString()` The syntax used to add a column to a table (optional).
`String` | `getCrossJoinSeparator()`
`String` | `getCurrentTimestampSelectString()` Retrieve the command used to retrieve the current timestamp from the database.
`String` | `getCurrentTimestampSQLFunctionName()` The name of the database-specific SQL function for retrieving the current timestamp.
`String` | `getForUpdateString()` Get the string to append to SELECT statements to acquire locks for this dialect.
`String` | `getIdentityColumnString()` The syntax used during DDL to define a column as being an IDENTITY.
`String` | `getIdentitySelectString()` Get the select command to use to retrieve the last generated IDENTITY value.
`int` | `getMaxAliasLength()` What is the maximum length Hibernate can use for generated aliases?
`String` | `getNullColumnString()` The keyword used to specify a nullable column.
`ResultSet` | `getResultSet(CallableStatement ps)` Given a callable statement previously processed by `Dialect.registerResultSetOutParameter(java.sql.CallableStatement, int)`, extract the `ResultSet` from the OUT parameter.
`String` | `getSelectGUIDString()` Get the command used to select a GUID from the underlying database.
`protected SqlTypeDescriptor` | `getSqlTypeDescriptorOverride(int sqlCode)` Returns the `SqlTypeDescriptor` that should be used to handle the given JDBC type code.
`boolean` | `isCurrentTimestampSelectStringCallable()` Should the value returned by `Dialect.getCurrentTimestampSelectString()` be treated as callable.
`boolean` | `qualifyIndexName()` Do we need to qualify index names with the schema name?
`int` | `registerResultSetOutParameter(CallableStatement statement, int col)` Registers an OUT parameter which will be returning a `ResultSet`.
`boolean` | `supportsCascadeDelete()`
`boolean` | `supportsCurrentTimestampSelection()` Does this dialect support a way to retrieve the database's current timestamp value?
`boolean` | `supportsEmptyInList()` Does this dialect support empty IN lists? For example, is [where XYZ in ()] a supported construct?
`boolean` | `supportsExistsInSelect()` Does the dialect support an exists statement in the select clause?
`boolean` | `supportsExpectedLobUsagePattern()` Actually Sybase does not support LOB locators at al.
`boolean` | `supportsIdentityColumns()` Does this dialect support identity column key generation?
`boolean` | `supportsInsertSelectIdentity()` Does the dialect support some form of inserting and selecting the generated IDENTITY value all in the same statement.
`boolean` | `supportsTemporaryTables()` Does this dialect support temporary tables?
`boolean` | `supportsTupleDistinctCounts()` Does this dialect support `count(distinct a,b)`?
`boolean` | `supportsUnionAll()` Does this dialect support UNION ALL, which is generally a faster variant of UNION?
`boolean` | `supportsUniqueConstraintInCreateAlterTable()` Does this dialect support adding Unique constraints via create and alter table ?

Methods inherited from class org.hibernate.dialect.Dialect
`bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConversionDelegate, buildSQLExceptionConverter, closeQuote, convertToFirstRowValue, createCaseFragment, createOuterJoinFragment, dropConstraints, forceLimitUsage, forUpdateOfColumns, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAddUniqueConstraintString, getCascadeConstraintsString, getCaseInsensitiveLike, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceString, getDropSequenceStrings, getDropTemporaryTableString, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getKeywords, getLimitString, getLimitString, getLobMergeStrategy, getLockingStrategy, getLowercaseFunction, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getQuerySequencesString, getReadLockString, getSelectClauseNullString, getSelectSequenceNextValString, getSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, getWriteLockString, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isLockTimeoutParameterized, openQuote, performTemporaryTableDDLInIsolation, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, remapSqlTypeDescriptor, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsLimit, supportsLimitOffset, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSequences, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTupleCounts, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsVariableLimit, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob, useMaxForLimit`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### SybaseASE15Dialect

    public SybaseASE15Dialect()

Method Detail

### supportsCascadeDelete

    public boolean supportsCascadeDelete()

  Overrides:
    `supportsCascadeDelete` in class `Dialect`

### getMaxAliasLength

    public int getMaxAliasLength()

  Description copied from class: `Dialect`
  What is the maximum length Hibernate can use for generated aliases?

  Overrides:
    `getMaxAliasLength` in class `Dialect`
  Returns:
    The maximum length.

### areStringComparisonsCaseInsensitive

    public boolean areStringComparisonsCaseInsensitive()

  By default, Sybase string comparisons are case-insensitive.

  If the DB is configured to be case-sensitive, then this return value will be incorrect.

  Overrides:
    `areStringComparisonsCaseInsensitive` in class `Dialect`
  Returns:
    True if comparisons are case insensitive.

### getCurrentTimestampSQLFunctionName

    public String getCurrentTimestampSQLFunctionName()

  Description copied from class: `Dialect`
  The name of the database-specific SQL function for retrieving the current timestamp.

  Overrides:
    `getCurrentTimestampSQLFunctionName` in class `Dialect`
  Returns:
    The function name.

### supportsExpectedLobUsagePattern

    public boolean supportsExpectedLobUsagePattern()

  Actually Sybase does not support LOB locators at al.

  Overrides:
    `supportsExpectedLobUsagePattern` in class `Dialect`
  Returns:
    false.

### supportsUniqueConstraintInCreateAlterTable

    public boolean supportsUniqueConstraintInCreateAlterTable()

  Description copied from class: `Dialect`
  Does this dialect support adding Unique constraints via create and alter table ?

  Overrides:
    `supportsUniqueConstraintInCreateAlterTable` in class `Dialect`
  Returns:
    boolean

### getCrossJoinSeparator

    public String getCrossJoinSeparator()

  Overrides:
    `getCrossJoinSeparator` in class `Dialect`
  Returns:
    Returns the separator to use for defining cross joins when translating HQL queries.

    Typically this will be either [`cross join` ] or [`,` ]

    Note that the spaces are important!

### getSqlTypeDescriptorOverride

    protected SqlTypeDescriptor getSqlTypeDescriptorOverride(int sqlCode)

  Description copied from class: `Dialect`
  Returns the `SqlTypeDescriptor` that should be used to handle the given JDBC type code. Returns `null` if there is no override.

  Overrides:
    `getSqlTypeDescriptorOverride` in class `Dialect`
  Parameters:
    `sqlCode` - A `Types` constant indicating the SQL column type
  Returns:
    The `SqlTypeDescriptor` to use as an override, or `null` if there is no override.

### getAddColumnString

    public String getAddColumnString()

  Description copied from class: `Dialect`
  The syntax used to add a column to a table (optional).

  Overrides:
    `getAddColumnString` in class `Dialect`
  Returns:
    The "add column" fragment.

### getNullColumnString

    public String getNullColumnString()

  Description copied from class: `Dialect`
  The keyword used to specify a nullable column.

  Overrides:
    `getNullColumnString` in class `Dialect`
  Returns:
    String

### qualifyIndexName

    public boolean qualifyIndexName()

  Description copied from class: `Dialect`
  Do we need to qualify index names with the schema name?

  Overrides:
    `qualifyIndexName` in class `Dialect`
  Returns:
    boolean

### getForUpdateString

    public String getForUpdateString()

  Description copied from class: `Dialect`
  Get the string to append to SELECT statements to acquire locks for this dialect.

  Overrides:
    `getForUpdateString` in class `Dialect`
  Returns:
    The appropriate `FOR UPDATE` clause string.

### supportsIdentityColumns

    public boolean supportsIdentityColumns()

  Description copied from class: `Dialect`
  Does this dialect support identity column key generation?

  Overrides:
    `supportsIdentityColumns` in class `Dialect`
  Returns:
    True if IDENTITY columns are supported; false otherwise.

### getIdentitySelectString

    public String getIdentitySelectString()

  Description copied from class: `Dialect`
  Get the select command to use to retrieve the last generated IDENTITY value.

  Overrides:
    `getIdentitySelectString` in class `Dialect`
  Returns:
    The appropriate select command

### getIdentityColumnString

    public String getIdentityColumnString()

  Description copied from class: `Dialect`
  The syntax used during DDL to define a column as being an IDENTITY.

  Overrides:
    `getIdentityColumnString` in class `Dialect`
  Returns:
    The appropriate DDL fragment.

### supportsInsertSelectIdentity

    public boolean supportsInsertSelectIdentity()

  Description copied from class: `Dialect`
  Does the dialect support some form of inserting and selecting the generated IDENTITY value all in the same statement.

  Overrides:
    `supportsInsertSelectIdentity` in class `Dialect`
  Returns:
    True if the dialect supports selecting the just generated IDENTITY in the insert statement.

### appendIdentitySelectToInsert

    public String appendIdentitySelectToInsert(String insertSQL)

  Description copied from class: `Dialect`
  Provided we `Dialect.supportsInsertSelectIdentity()`, then attach the "select identity" clause to the insert statement.

  Note, if `Dialect.supportsInsertSelectIdentity()` == false then the insert-string should be returned without modification.

  Overrides:
    `appendIdentitySelectToInsert` in class `Dialect`
  Parameters:
    `insertSQL` - The insert command
  Returns:
    The insert command with any necessary identity select clause attached.

### appendLockHint

    public String appendLockHint(LockMode mode,
                                 String tableName)

  Description copied from class: `Dialect`
  Some dialects support an alternative means to `SELECT FOR UPDATE`, whereby a "lock hint" is appends to the table name in the from clause.

  contributed by Helge Schulz

  Overrides:
    `appendLockHint` in class `Dialect`
  Parameters:
    `mode` - The lock mode to apply
    `tableName` - The name of the table to which to apply the lock hint.
  Returns:
    The table with any required lock hints.

### applyLocksToSql

    public String applyLocksToSql(String sql,
                                  LockOptions aliasedLockOptions,
                                  Map keyColumnNames)

  Description copied from class: `Dialect`
  Modifies the given SQL by applying the appropriate updates for the specified lock modes and key columns.

  The behavior here is that of an ANSI SQL `SELECT FOR UPDATE`. This method is really intended to allow dialects which do not support `SELECT FOR UPDATE` to achieve this in their own fashion.

  Overrides:
    `applyLocksToSql` in class `Dialect`
  Parameters:
    `sql` - the SQL string to modify
    `aliasedLockOptions` - lock options indexed by aliased table names.
    `keyColumnNames` - a map of key columns indexed by aliased table names.
  Returns:
    the modified SQL string.

### registerResultSetOutParameter

    public int registerResultSetOutParameter(CallableStatement statement,
                                             int col)
                                      throws SQLException

  Description copied from class: `Dialect`
  Registers an OUT parameter which will be returning a `ResultSet`. How this is accomplished varies greatly from DB to DB, hence its inclusion (along with `Dialect.getResultSet(java.sql.CallableStatement)`) here.

  Overrides:
    `registerResultSetOutParameter` in class `Dialect`
  Parameters:
    `statement` - The callable statement.
    `col` - The bind position at which to register the OUT param.
  Returns:
    The number of (contiguous) bind positions used.
  Throws:
    `SQLException` - Indicates problems registering the OUT param.

### getResultSet

    public ResultSet getResultSet(CallableStatement ps)
                           throws SQLException

  Description copied from class: `Dialect`
  Given a callable statement previously processed by `Dialect.registerResultSetOutParameter(java.sql.CallableStatement, int)`, extract the `ResultSet` from the OUT parameter.

  Overrides:
    `getResultSet` in class `Dialect`
  Parameters:
    `ps` - The callable statement.
  Returns:
    The extracted result set.
  Throws:
    `SQLException` - Indicates problems extracting the result set.

### supportsCurrentTimestampSelection

    public boolean supportsCurrentTimestampSelection()

  Description copied from class: `Dialect`
  Does this dialect support a way to retrieve the database's current timestamp value?

  Overrides:
    `supportsCurrentTimestampSelection` in class `Dialect`
  Returns:
    True if the current timestamp can be retrieved; false otherwise.

### isCurrentTimestampSelectStringCallable

    public boolean isCurrentTimestampSelectStringCallable()

  Description copied from class: `Dialect`
  Should the value returned by `Dialect.getCurrentTimestampSelectString()` be treated as callable. Typically this indicates that JDBC escape syntax is being used...

  Overrides:
    `isCurrentTimestampSelectStringCallable` in class `Dialect`
  Returns:
    True if the `Dialect.getCurrentTimestampSelectString()` return is callable; false otherwise.

### getCurrentTimestampSelectString

    public String getCurrentTimestampSelectString()

  Description copied from class: `Dialect`
  Retrieve the command used to retrieve the current timestamp from the database.

  Overrides:
    `getCurrentTimestampSelectString` in class `Dialect`
  Returns:
    The command.

### supportsTemporaryTables

    public boolean supportsTemporaryTables()

  Description copied from class: `Dialect`
  Does this dialect support temporary tables?

  Overrides:
    `supportsTemporaryTables` in class `Dialect`
  Returns:
    True if temp tables are supported; false otherwise.

### generateTemporaryTableName

    public String generateTemporaryTableName(String baseTableName)

  Description copied from class: `Dialect`
  Generate a temporary table name given the base table.

  Overrides:
    `generateTemporaryTableName` in class `Dialect`
  Parameters:
    `baseTableName` - The table name from which to base the temp table name.
  Returns:
    The generated temp table name.

### dropTemporaryTableAfterUse

    public boolean dropTemporaryTableAfterUse()

  Description copied from class: `Dialect`
  Do we need to drop the temporary table after use?

  Overrides:
    `dropTemporaryTableAfterUse` in class `Dialect`
  Returns:
    True if the table should be dropped.

### getSelectGUIDString

    public String getSelectGUIDString()

  Description copied from class: `Dialect`
  Get the command used to select a GUID from the underlying database.

  Optional operation.

  Overrides:
    `getSelectGUIDString` in class `Dialect`
  Returns:
    The appropriate command.

### supportsEmptyInList

    public boolean supportsEmptyInList()

  Description copied from class: `Dialect`
  Does this dialect support empty IN lists?

  For example, is [where XYZ in ()] a supported construct?

  Overrides:
    `supportsEmptyInList` in class `Dialect`
  Returns:
    True if empty in lists are supported; false otherwise.

### supportsUnionAll

    public boolean supportsUnionAll()

  Description copied from class: `Dialect`
  Does this dialect support UNION ALL, which is generally a faster variant of UNION?

  Overrides:
    `supportsUnionAll` in class `Dialect`
  Returns:
    True if UNION ALL is supported; false otherwise.

### supportsExistsInSelect

    public boolean supportsExistsInSelect()

  Description copied from class: `Dialect`
  Does the dialect support an exists statement in the select clause?

  Overrides:
    `supportsExistsInSelect` in class `Dialect`
  Returns:
    True if exists checks are allowed in the select clause; false otherwise.

### doesReadCommittedCauseWritersToBlockReaders

    public boolean doesReadCommittedCauseWritersToBlockReaders()

  Description copied from class: `Dialect`
  For the underlying database, is READ_COMMITTED isolation implemented by forcing readers to wait for write locks to be released?

  Overrides:
    `doesReadCommittedCauseWritersToBlockReaders` in class `Dialect`
  Returns:
    True if writers block readers to achieve READ_COMMITTED; false otherwise.

### doesRepeatableReadCauseReadersToBlockWriters

    public boolean doesRepeatableReadCauseReadersToBlockWriters()

  Description copied from class: `Dialect`
  For the underlying database, is REPEATABLE_READ isolation implemented by forcing writers to wait for read locks to be released?

  Overrides:
    `doesRepeatableReadCauseReadersToBlockWriters` in class `Dialect`
  Returns:
    True if readers block writers to achieve REPEATABLE_READ; false otherwise.

### supportsTupleDistinctCounts

    public boolean supportsTupleDistinctCounts()

  Description copied from class: `Dialect`
  Does this dialect support `count(distinct a,b)`?

  Overrides:
    `supportsTupleDistinctCounts` in class `Dialect`
  Returns:
    True if the database supports counting distinct tuples; false otherwise.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.