Package org.hibernate.dialect
Class RDMSOS2200Dialect
- java.lang.Object
-
- org.hibernate.dialect.Dialect
-
- org.hibernate.dialect.RDMSOS2200Dialect
-
- All Implemented Interfaces:
ConversionContext
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
-
-
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, STANDARD_DEFAULT_BATCH_LOAD_SIZING_STRATEGY, STREAM_XFER_LOB_MERGE_STRATEGY
-
-
Constructor Summary
Constructors Constructor Description RDMSOS2200Dialect()
Constructs a RDMSOS2200Dialect
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description CaseFragment
createCaseFragment()
Create aCaseFragment
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 clauseString
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.LimitHandler
getLimitHandler()
Returns the delegate managing LIMIT clause.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
supportsVariableLimit()
Does this dialect support bind variables (i.e., prepared statement parameters) for its limit/offset?-
Methods inherited from class org.hibernate.dialect.Dialect
addSqlHintOrComment, appendLockHint, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, augmentRecognizedTableTypes, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildIdentifierHelper, buildSQLExceptionConversionDelegate, buildSQLExceptionConverter, canCreateCatalog, canCreateSchema, cast, cast, cast, closeQuote, contributeTypes, convertToFirstRowValue, createOuterJoinFragment, defaultScrollMode, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropConstraints, escapeComment, escapeLiteral, forceLimitUsage, forceLobAsLastValue, getAddColumnSuffixString, getAddForeignKeyConstraintString, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getAddUniqueConstraintString, getAlterTableString, getAuxiliaryDatabaseObjectExporter, getCallableStatementSupport, getCaseInsensitiveLike, getCastTypeName, getColumnAliasExtractor, getColumnComment, getCreateCatalogCommand, getCreateMultisetTableString, getCreateSchemaCommand, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCrossJoinSeparator, getCurrentSchemaCommand, getCurrentTimestampSelectString, getCurrentTimestampSQLFunctionName, getDefaultBatchLoadSizingStrategy, getDefaultMultiTableBulkIdStrategy, getDefaultProperties, getDialect, getDialect, getDropCatalogCommand, getDropForeignKeyString, getDropSchemaCommand, getDropSequenceStrings, getDropTableString, getForeignKeyExporter, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateSkipLockedString, getForUpdateSkipLockedString, getForUpdateString, getForUpdateString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnSupport, getIndexExporter, getInExpressionCountLimit, getKeywords, getLimitString, getLobMergeStrategy, getLowercaseFunction, getMaxAliasLength, getNameQualifierSupport, getNativeIdentifierGeneratorClass, getNativeIdentifierGeneratorStrategy, getNoColumnsInsertString, getNotExpression, getQueryHintString, getQueryHintString, getQuerySequencesString, getReadLockString, getReadLockString, getResultSet, getResultSet, getResultSet, getSchemaNameResolver, getSelectClauseNullString, getSelectGUIDString, getSelectSequenceNextValString, getSequenceExporter, getSequenceInformationExtractor, getSqlTypeDescriptorOverride, getTableComment, getTableExporter, getTableTypeString, getTypeName, getTypeName, getUniqueDelegate, getUniqueKeyExporter, getViolatedConstraintNameExtracter, getWriteLockString, getWriteLockString, hasAlterTable, hasSelfReferentialForeignKeyBug, inlineLiteral, isCurrentTimestampSelectStringCallable, isJdbcLogWarningsEnabledByDefault, isLegacyLimitHandlerBehaviorEnabled, isLockTimeoutParameterized, isTypeNameRegistered, openQuote, prependComment, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, registerResultSetOutParameter, remapSqlTypeDescriptor, renderOrderByElement, replaceResultVariableInOrderByClauseWithPosition, requiresCastingOfParametersInSelectClause, requiresParensForTupleDistinctCounts, supportsBindAsCallableArgument, supportsCaseInsensitiveLike, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsCommentOn, supportsCurrentTimestampSelection, supportsEmptyInList, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIfExistsAfterAlterTable, supportsIfExistsAfterConstraintName, supportsIfExistsAfterTableName, supportsIfExistsBeforeConstraintName, supportsIfExistsBeforeTableName, supportsLobValueChangePropogation, supportsLockTimeouts, supportsNamedParameters, supportsNationalizedTypes, supportsNonQueryWithCTE, supportsNotNullUnique, supportsNoWait, supportsParametersInInsertSelect, supportsPartitionBy, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSkipLocked, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsTupleCounts, supportsTupleDistinctCounts, supportsTuplesInSubqueries, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsUniqueConstraintInCreateAlterTable, supportsValuesList, toBooleanValueString, toString, transformSelectString, useFollowOnLocking, useFollowOnLocking, useInputStreamToInsertBlob, useMaxForLimit
-
-
-
-
Method Detail
-
qualifyIndexName
public boolean qualifyIndexName()
RDMS does not support qualifing index names with the schema name. Do we need to qualify index names with the schema name?- Overrides:
qualifyIndexName
in classDialect
- 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. Is FOR UPDATE OF syntax supported?- Overrides:
forUpdateOfColumns
in classDialect
- 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. Get the string to append to SELECT statements to acquire locks for this dialect.- Overrides:
getForUpdateString
in classDialect
- Returns:
- The appropriate FOR UPDATE clause string.
-
supportsCascadeDelete
public boolean supportsCascadeDelete()
RDMS does not support Cascade Deletes. Need to review this in the future when support is provided. Does this dialect support cascaded delete on foreign key definitions?- Overrides:
supportsCascadeDelete
in classDialect
- Returns:
true
indicates that the dialect does support cascaded delete on foreign keys.
-
supportsOuterJoinForUpdate
public boolean supportsOuterJoinForUpdate()
Currently, RDMS-JDBC does not support ForUpdate. Need to review this in the future when support is provided. Does this dialect support FOR UPDATE in conjunction with outer joined rows?- Overrides:
supportsOuterJoinForUpdate
in classDialect
- 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 classDialect
- 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 classDialect
- Returns:
- String
-
supportsSequences
public boolean supportsSequences()
Description copied from class:Dialect
Does this dialect support sequences?- Overrides:
supportsSequences
in classDialect
- 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 classDialect
- 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 ofDialect.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 overrideDialect.getCreateSequenceStrings(java.lang.String)
.- Overrides:
getCreateSequenceString
in classDialect
- 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 ofDialect.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 overrideDialect.getDropSequenceStrings(java.lang.String)
.- Overrides:
getDropSequenceString
in classDialect
- 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 classDialect
- Returns:
- String
-
createCaseFragment
public CaseFragment createCaseFragment()
Description copied from class:Dialect
Create aCaseFragment
strategy responsible for handling this dialect's variations in how CASE statements are handled.- Overrides:
createCaseFragment
in classDialect
- Returns:
- This dialect's
CaseFragment
strategy.
-
getLimitHandler
public LimitHandler getLimitHandler()
Description copied from class:Dialect
Returns the delegate managing LIMIT clause.- Overrides:
getLimitHandler
in classDialect
- Returns:
- LIMIT clause delegate.
-
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 classDialect
- 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 classDialect
- 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 classDialect
- Parameters:
sql
- The query to which to apply the limit.offset
- The offset of the limitlimit
- 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 classDialect
- 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 classDialect
- 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 classDialect
- Parameters:
lockable
- The persister for the entity to be locked.lockMode
- The type of lock to be acquired.- Returns:
- The appropriate locking strategy.
-
-