org.hibernate.dialect
Class RDMSOS2200Dialect

java.lang.Object
  extended byorg.hibernate.dialect.Dialect
      extended byorg.hibernate.dialect.RDMSOS2200Dialect

public class RDMSOS2200Dialect
extends Dialect

Author:
Ploski and Hanson

Field Summary
 
Fields inherited from class org.hibernate.dialect.Dialect
CLOSED_QUOTE, QUOTE
 
Constructor Summary
RDMSOS2200Dialect()
           
 
Method Summary
 CaseFragment createCaseFragment()
          Create a CaseFragment for this dialect.
 boolean forUpdateOfColumns()
          The RDMS DB supports the 'FOR UPDATE OF' clause.
 String getAddColumnString()
          Build an instance of the SQLExceptionConverter preferred by this dialect for converting SQLExceptions into Hibernate's JDBCException hierarchy.
 String getCascadeConstraintsString()
          Completely optional cascading drop clause
 String getCreateSequenceString(String sequenceName)
          The syntax used to create a sequence, if sequences are supported.
 String getDropSequenceString(String sequenceName)
          The syntax used to drop a sequence, if sequences are supported.
 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)
           
 String getNullColumnString()
          The keyword used to specify a nullable column.
 String getSequenceNextValString(String sequenceName)
          Generate the appropriate select statement to to retreive the next value of a sequence, if sequences are supported.
 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 have some kind of LIMIT syntax?
 boolean supportsLimitOffset()
          Does this dialect support an offset?
 boolean supportsOuterJoinForUpdate()
          Currently, RDMS-JDBC does not support ForUpdate.
 boolean supportsSequences()
          Does this dialect support sequences?
 boolean supportsUnionAll()
           
 boolean supportsUniqueConstraintInCreateAlterTable()
          RDMS does not support adding Unique constraints via create and alter table.
 boolean supportsVariableLimit()
           
 
Methods inherited from class org.hibernate.dialect.Dialect
appendIdentitySelectToInsert, appendLockHint, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, createOuterJoinFragment, dropConstraints, dropTemporaryTableAfterUse, generateTemporaryTableName, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCastTypeName, getColumnComment, getCreateSequenceStrings, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCurrentTimestampSelectString, getCurrentTimestampSQLFunctionName, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLowercaseFunction, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getQuerySequencesString, getResultSet, getSelectClauseNullString, getSelectGUIDString, getSelectSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, isCurrentTimestampSelectStringCallable, openQuote, performTemporaryTableDDLInIsolation, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, supportsColumnCheck, supportsCommentOn, supportsCurrentTimestampSelection, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsNotNullUnique, supportsParametersInInsertSelect, supportsTableCheck, supportsTemporaryTables, 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

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

getAddColumnString

public String getAddColumnString()
Build an instance of the SQLExceptionConverter preferred by this dialect for converting SQLExceptions into Hibernate's JDBCException hierarchy. The default Dialect implementation simply returns a converter based on X/Open SQLState codes.

It is strongly recommended that specific Dialect implementations override this method, since interpretation of a SQL error is much more accurate when based on the ErrorCode rather than the SQLState. Unfortunately, the ErrorCode is a vendor- specific approach.

Overrides:
getAddColumnString in class Dialect
Returns:
The Dialect's preferred SQLExceptionConverter.

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:
boolean

getSequenceNextValString

public String getSequenceNextValString(String sequenceName)
Description copied from class: Dialect
Generate the appropriate select statement to to retreive the next value of a sequence, if sequences are supported.

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
The syntax used to create a sequence, if sequences are supported.

Overrides:
getCreateSequenceString in class Dialect
Parameters:
sequenceName - the name of the sequence
Returns:
String

getDropSequenceString

public String getDropSequenceString(String sequenceName)
Description copied from class: Dialect
The syntax used to drop a sequence, if sequences are supported.

Overrides:
getDropSequenceString in class Dialect
Parameters:
sequenceName - the name of the sequence
Returns:
String

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 for this dialect.

Overrides:
createCaseFragment in class Dialect
Returns:
OuterJoinGenerator

supportsLimit

public boolean supportsLimit()
Description copied from class: Dialect
Does this Dialect have some kind of LIMIT syntax?

Overrides:
supportsLimit in class Dialect

supportsLimitOffset

public boolean supportsLimitOffset()
Description copied from class: Dialect
Does this dialect support an offset?

Overrides:
supportsLimitOffset in class Dialect

getLimitString

public String getLimitString(String sql,
                             int offset,
                             int limit)
Overrides:
getLimitString in class Dialect

supportsVariableLimit

public boolean supportsVariableLimit()
Overrides:
supportsVariableLimit in class Dialect

supportsUnionAll

public boolean supportsUnionAll()
Overrides:
supportsUnionAll in class Dialect