org.hibernate.dialect
Class RDMSOS2200Dialect

java.lang.Object
  extended by org.hibernate.dialect.Dialect
      extended by org.hibernate.dialect.RDMSOS2200Dialect

public class RDMSOS2200Dialect
extends Dialect

This is the Hibernate dialect for the Unisys 2200 Relational Database (RDMS). This dialect was developed for use with Hibernate 3.0.5. Other versions may require modifications to the dialect. Version History: Also change the version displayed below in the constructor 1.1 1.0 2005-10-24 CDH - First dated version for use with CP 11

Author:
Ploski and Hanson

Field Summary
 
Fields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, NO_BATCH, QUOTE
 
Constructor Summary
RDMSOS2200Dialect()
           
 
Method Summary
 CaseFragment createCaseFragment()
          Create a CaseFragment strategy responsible for handling this dialect's variations in how CASE statements are handled.
 boolean forUpdateOfColumns()
          The RDMS DB supports the 'FOR UPDATE OF' clause.
 String getAddColumnString()
          The syntax used to add a column to a table (optional).
 String getCascadeConstraintsString()
          Completely optional cascading drop clause
 String getCreateSequenceString(String sequenceName)
          Typically dialects which support sequences can create a sequence with a single command.
 String getDropSequenceString(String sequenceName)
          Typically dialects which support sequences can drop a sequence with a single command.
 String getForUpdateString()
          Since the RDMS-JDBC driver does not support for updates, this string is set to an empty string.
 String getLimitString(String sql, int offset, int limit)
          Given a limit and an offset, apply the limit clause to the query.
 LockingStrategy getLockingStrategy(Lockable lockable, LockMode lockMode)
          Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.
 String getNullColumnString()
          The keyword used to specify a nullable column.
 String getSequenceNextValString(String sequenceName)
          Generate the appropriate select statement to to retrieve the next value of a sequence.
 boolean qualifyIndexName()
          RDMS does not support qualifing index names with the schema name.
 boolean supportsCascadeDelete()
          RDMS does not support Cascade Deletes.
 boolean supportsLimit()
          Does this dialect support some form of limiting query results via a SQL clause?
 boolean supportsLimitOffset()
          Does this dialect's LIMIT support (if any) additionally support specifying an offset?
 boolean supportsOuterJoinForUpdate()
          Currently, RDMS-JDBC does not support ForUpdate.
 boolean supportsSequences()
          Does this dialect support sequences?
 boolean supportsUnionAll()
          Does this dialect support UNION ALL, which is generally a faster variant of UNION?
 boolean supportsUniqueConstraintInCreateAlterTable()
          RDMS does not support adding Unique constraints via create and alter table.
 boolean supportsVariableLimit()
          Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?
 
Methods inherited from class org.hibernate.dialect.Dialect
addTypeOverride, appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, convertToFirstRowValue, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropConstraints, dropTemporaryTableAfterUse, forceLimitUsage, generateTemporaryTableName, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCrossJoinSeparator, getCurrentTimestampSelectString, getCurrentTimestampSQLFunctionName, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getDropTemporaryTableString, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getQuerySequencesString, getReadLockString, getResultSet, getSelectClauseNullString, getSelectGUIDString, getSelectSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getTypeOverrides, getViolatedConstraintNameExtracter, getWriteLockString, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, isLockTimeoutParameterized, openQuote, performTemporaryTableDDLInIsolation, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, supportsBindAsCallableArgument, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsCurrentTimestampSelection, supportsEmptyInList, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNotNullUnique, supportsParametersInInsertSelect, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTemporaryTables, supportsTupleCounts, supportsTupleDistinctCounts, supportsUnboundedLobLocatorMaterialization, supportsUnique, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob, useMaxForLimit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RDMSOS2200Dialect

public RDMSOS2200Dialect()
Method Detail

qualifyIndexName

public boolean qualifyIndexName()
RDMS does not support qualifing index names with the schema name.

Overrides:
qualifyIndexName in class Dialect
Returns:
boolean

forUpdateOfColumns

public boolean forUpdateOfColumns()
The RDMS DB supports the 'FOR UPDATE OF' clause. However, the RDMS-JDBC driver does not support this feature, so a false is return. The base dialect also returns a false, but we will leave this over-ride in to make sure it stays false.

Overrides:
forUpdateOfColumns in class Dialect
Returns:
True if the database supports FOR UPDATE OF syntax; false otherwise.

getForUpdateString

public String getForUpdateString()
Since the RDMS-JDBC driver does not support for updates, this string is set to an empty string. Whenever, the driver does support this feature, the returned string should be " FOR UPDATE OF". Note that RDMS does not support the string 'FOR UPDATE' string.

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

supportsUniqueConstraintInCreateAlterTable

public boolean supportsUniqueConstraintInCreateAlterTable()
RDMS does not support adding Unique constraints via create and alter table.

Overrides:
supportsUniqueConstraintInCreateAlterTable in class Dialect
Returns:
boolean

supportsCascadeDelete

public boolean supportsCascadeDelete()
RDMS does not support Cascade Deletes. Need to review this in the future when support is provided.

Overrides:
supportsCascadeDelete in class Dialect

supportsOuterJoinForUpdate

public boolean supportsOuterJoinForUpdate()
Currently, RDMS-JDBC does not support ForUpdate. Need to review this in the future when support is provided.

Overrides:
supportsOuterJoinForUpdate in class Dialect
Returns:
True if outer joined rows can be locked via FOR UPDATE.

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

supportsSequences

public boolean supportsSequences()
Description copied from class: Dialect
Does this dialect support sequences?

Overrides:
supportsSequences in class Dialect
Returns:
True if sequences supported; false otherwise.

getSequenceNextValString

public String getSequenceNextValString(String sequenceName)
Description copied from class: Dialect
Generate the appropriate select statement to to retrieve the next value of a sequence.

This should be a "stand alone" select statement.

Overrides:
getSequenceNextValString in class Dialect
Parameters:
sequenceName - the name of the sequence
Returns:
String The "nextval" select string.

getCreateSequenceString

public String getCreateSequenceString(String sequenceName)
Description copied from class: Dialect
Typically dialects which support sequences can create a sequence with a single command. This is convenience form of Dialect.getCreateSequenceStrings(java.lang.String) to help facilitate that.

Dialects which support sequences and can create a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to create a sequence should instead override Dialect.getCreateSequenceStrings(java.lang.String).

Overrides:
getCreateSequenceString in class Dialect
Parameters:
sequenceName - The name of the sequence
Returns:
The sequence creation command

getDropSequenceString

public String getDropSequenceString(String sequenceName)
Description copied from class: Dialect
Typically dialects which support sequences can drop a sequence with a single command. This is convenience form of Dialect.getDropSequenceStrings(java.lang.String) to help facilitate that.

Dialects which support sequences and can drop a sequence in a single command need *only* override this method. Dialects which support sequences but require multiple commands to drop a sequence should instead override Dialect.getDropSequenceStrings(java.lang.String).

Overrides:
getDropSequenceString in class Dialect
Parameters:
sequenceName - The name of the sequence
Returns:
The sequence drop commands

getCascadeConstraintsString

public String getCascadeConstraintsString()
Description copied from class: Dialect
Completely optional cascading drop clause

Overrides:
getCascadeConstraintsString in class Dialect
Returns:
String

createCaseFragment

public CaseFragment createCaseFragment()
Description copied from class: Dialect
Create a CaseFragment strategy responsible for handling this dialect's variations in how CASE statements are handled.

Overrides:
createCaseFragment in class Dialect
Returns:
This dialect's CaseFragment strategy.

supportsLimit

public boolean supportsLimit()
Description copied from class: Dialect
Does this dialect support some form of limiting query results via a SQL clause?

Overrides:
supportsLimit in class Dialect
Returns:
True if this dialect supports some form of LIMIT.

supportsLimitOffset

public boolean supportsLimitOffset()
Description copied from class: Dialect
Does this dialect's LIMIT support (if any) additionally support specifying an offset?

Overrides:
supportsLimitOffset in class Dialect
Returns:
True if the dialect supports an offset within the limit support.

getLimitString

public String getLimitString(String sql,
                             int offset,
                             int limit)
Description copied from class: Dialect
Given a limit and an offset, apply the limit clause to the query.

Overrides:
getLimitString in class Dialect
Parameters:
sql - The query to which to apply the limit.
offset - The offset of the limit
limit - The limit of the limit ;)
Returns:
The modified query statement with the limit applied.

supportsVariableLimit

public boolean supportsVariableLimit()
Description copied from class: Dialect
Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?

Overrides:
supportsVariableLimit in class Dialect
Returns:
True if bind variables can be used; 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.

getLockingStrategy

public LockingStrategy getLockingStrategy(Lockable lockable,
                                          LockMode lockMode)
Description copied from class: Dialect
Get a strategy instance which knows how to acquire a database-level lock of the specified mode for this dialect.

Overrides:
getLockingStrategy in class Dialect
Parameters:
lockable - The persister for the entity to be locked.
lockMode - The type of lock to be acquired.
Returns:
The appropriate locking strategy.


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