|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.hibernate.dialect.Dialect com.ca.idms.hibernate.IDMSDialect
public class IDMSDialect
Hibernate Dialect for CA IDMS
This class provides a base dialect that is appropriate for CA IDMS r16 and r17. It will serve as a superclass, as required, for future dialect versions.
Prerequisites
CA IDMS r16 and earlier does not support ANSI join syntax, although
theta-style inner joins are supported. Outer joins must be performed
using the CA IDMS PRESERVE
SQL extension.
SELECT ... FOR UPDATE
is used in CA IDMS for positioned update, not
for locking. Pessimistic locking is therefore not supported.
Correct CA IDMS DDL syntax cannot be generated by the hbm2ddl tool, even with the dialect methods coded appropriately. As a result, DDL cannot be exported directly to the DBMS. Instead, export to a file, modify as required, and use as input to the IDMSBCF tool.
CA IDMS does not support comments in SQL commands. Set property
use_sql_comments
to false
.
CA IDMS does not support subqueries in the SELECT
projection
list. The following is therefore invalid:
SELECT (SELECT COUNT(*) FROM ITEM I WHERE I.ITEM_ID = ITEM_ID) FROM BID
This dialect's methods write debug-level messages to the Apache commons-logging
API. If you are using Apache Log4j, you can enable logging by setting
the log4j.logger.org.hibernate property
to DEBUG
.
The log entries will also be written to the CA IDMS Server log if a
connection exists at that time and one of the CA IDMS trace options is
enabled.
Field Summary |
---|
Fields inherited from class org.hibernate.dialect.Dialect |
---|
CLOSED_QUOTE, DEFAULT_BATCH_SIZE, NO_BATCH, QUOTE |
Constructor Summary | |
---|---|
IDMSDialect()
|
Method Summary | |
---|---|
boolean |
dropTemporaryTableAfterUse()
|
boolean |
forUpdateOfColumns()
This method returns the same value (false) as the parent class. |
java.lang.String |
getAddColumnString()
|
java.lang.String |
getAddForeignKeyConstraintString(java.lang.String constraintName,
java.lang.String[] foreignKey,
java.lang.String referencedTable,
java.lang.String[] primaryKey,
boolean referencesPrimaryKey)
|
java.lang.String |
getAddPrimaryKeyConstraintString(java.lang.String constraintName)
|
java.lang.String |
getCascadeConstraintsString()
|
java.lang.String |
getCurrentTimestampSelectString()
|
java.lang.String |
getCurrentTimestampSQLFunctionName()
CA IDMS doesn't have a suitable function, therefore this method returns a null string. |
java.lang.String |
getForUpdateString()
FOR UPDATE is supported only for positioned update in CA IDMS, not
for locking. |
java.lang.String |
getForUpdateString(org.hibernate.LockMode lockMode)
FOR UPDATE is supported only for positioned update in CA IDMS, not
for locking. |
java.lang.String |
getForUpdateString(java.lang.String aliases)
This method returns the same value (aliases) as the parent class. |
org.hibernate.dialect.lock.LockingStrategy |
getLockingStrategy(org.hibernate.persister.entity.Lockable lockable,
org.hibernate.LockMode lockMode)
FOR UPDATE doesn't affect locking in CA IDMS, so
UpdateLockingStrategy is returned when an entity is versioned. |
int |
getMaxAliasLength()
|
java.lang.String |
getNoColumnsInsertString()
|
boolean |
hasDataTypeInIdentityColumn()
|
boolean |
isCurrentTimestampSelectStringCallable()
|
boolean |
qualifyIndexName()
|
boolean |
supportsCascadeDelete()
|
boolean |
supportsCircularCascadeDeleteConstraints()
|
boolean |
supportsColumnCheck()
|
boolean |
supportsCurrentTimestampSelection()
|
boolean |
supportsEmptyInList()
|
boolean |
supportsExpectedLobUsagePattern()
|
boolean |
supportsLobValueChangePropogation()
|
boolean |
supportsNotNullUnique()
|
boolean |
supportsOuterJoinForUpdate()
|
boolean |
supportsSubqueryOnMutatingTable()
|
boolean |
supportsSubselectAsInPredicateLHS()
|
boolean |
supportsTemporaryTables()
|
boolean |
supportsUnboundedLobLocatorMaterialization()
|
boolean |
supportsUnionAll()
|
boolean |
supportsUnique()
|
boolean |
supportsUniqueConstraintInCreateAlterTable()
|
boolean |
useInputStreamToInsertBlob()
|
Methods inherited from class org.hibernate.dialect.Dialect |
---|
appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, createCaseFragment, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropConstraints, generateTemporaryTableName, getCastTypeName, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceString, getDropSequenceStrings, getForUpdateNowaitString, getForUpdateNowaitString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentityColumnString, getIdentityInsertString, getIdentitySelectString, getIdentitySelectString, getKeywords, getLimitString, getLimitString, getLowercaseFunction, getNativeIdentifierGeneratorClass, getNullColumnString, getQuerySequencesString, getResultSet, getSelectClauseNullString, getSelectGUIDString, getSelectSequenceNextValString, getSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, hasAlterTable, hasSelfReferentialForeignKeyBug, openQuote, performTemporaryTableDDLInIsolation, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, registerResultSetOutParameter, supportsBindAsCallableArgument, supportsCommentOn, supportsExistsInSelect, supportsIdentityColumns, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLimit, supportsLimitOffset, supportsParametersInInsertSelect, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSequences, supportsTableCheck, supportsVariableLimit, toBooleanValueString, toString, transformSelectString, useMaxForLimit |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public IDMSDialect()
Method Detail |
---|
public boolean hasDataTypeInIdentityColumn()
hasDataTypeInIdentityColumn
in class org.hibernate.dialect.Dialect
public java.lang.String getForUpdateString(org.hibernate.LockMode lockMode)
FOR UPDATE
is supported only for positioned update in CA IDMS, not
for locking. Therefore, this method returns a null string.
getForUpdateString
in class org.hibernate.dialect.Dialect
public java.lang.String getForUpdateString()
FOR UPDATE
is supported only for positioned update in CA IDMS, not
for locking. Therefore, this method returns a null string.
getForUpdateString
in class org.hibernate.dialect.Dialect
public org.hibernate.dialect.lock.LockingStrategy getLockingStrategy(org.hibernate.persister.entity.Lockable lockable, org.hibernate.LockMode lockMode)
FOR UPDATE
doesn't affect locking in CA IDMS, so
UpdateLockingStrategy
is returned when an entity is versioned.
Since most CA IDMS customers are working with legacy schemas
that are not easy to modify for versioning, we return
SelectLockingStrategy
for non-versioned entities
(UpdateLockingStrategy
is only supported for versioned entities).
Non-versioned entities should be always defined with
optimistic-lock="all"
or optimistic-lock="dirty"
.
getLockingStrategy
in class org.hibernate.dialect.Dialect
public boolean forUpdateOfColumns()
forUpdateOfColumns
in class org.hibernate.dialect.Dialect
public java.lang.String getForUpdateString(java.lang.String aliases)
getForUpdateString
in class org.hibernate.dialect.Dialect
public boolean supportsOuterJoinForUpdate()
supportsOuterJoinForUpdate
in class org.hibernate.dialect.Dialect
public boolean supportsTemporaryTables()
supportsTemporaryTables
in class org.hibernate.dialect.Dialect
public boolean dropTemporaryTableAfterUse()
dropTemporaryTableAfterUse
in class org.hibernate.dialect.Dialect
public boolean supportsCurrentTimestampSelection()
supportsCurrentTimestampSelection
in class org.hibernate.dialect.Dialect
public boolean isCurrentTimestampSelectStringCallable()
isCurrentTimestampSelectStringCallable
in class org.hibernate.dialect.Dialect
public java.lang.String getCurrentTimestampSelectString()
getCurrentTimestampSelectString
in class org.hibernate.dialect.Dialect
public java.lang.String getCurrentTimestampSQLFunctionName()
getCurrentTimestampSQLFunctionName
in class org.hibernate.dialect.Dialect
public boolean supportsUnionAll()
supportsUnionAll
in class org.hibernate.dialect.Dialect
public java.lang.String getNoColumnsInsertString()
getNoColumnsInsertString
in class org.hibernate.dialect.Dialect
public int getMaxAliasLength()
getMaxAliasLength
in class org.hibernate.dialect.Dialect
public boolean qualifyIndexName()
qualifyIndexName
in class org.hibernate.dialect.Dialect
public boolean supportsUnique()
supportsUnique
in class org.hibernate.dialect.Dialect
public boolean supportsUniqueConstraintInCreateAlterTable()
supportsUniqueConstraintInCreateAlterTable
in class org.hibernate.dialect.Dialect
public java.lang.String getAddColumnString()
getAddColumnString
in class org.hibernate.dialect.Dialect
public java.lang.String getAddForeignKeyConstraintString(java.lang.String constraintName, java.lang.String[] foreignKey, java.lang.String referencedTable, java.lang.String[] primaryKey, boolean referencesPrimaryKey)
getAddForeignKeyConstraintString
in class org.hibernate.dialect.Dialect
public java.lang.String getAddPrimaryKeyConstraintString(java.lang.String constraintName)
getAddPrimaryKeyConstraintString
in class org.hibernate.dialect.Dialect
public boolean supportsColumnCheck()
supportsColumnCheck
in class org.hibernate.dialect.Dialect
public boolean supportsCascadeDelete()
supportsCascadeDelete
in class org.hibernate.dialect.Dialect
public boolean supportsNotNullUnique()
supportsNotNullUnique
in class org.hibernate.dialect.Dialect
public java.lang.String getCascadeConstraintsString()
getCascadeConstraintsString
in class org.hibernate.dialect.Dialect
public boolean supportsEmptyInList()
supportsEmptyInList
in class org.hibernate.dialect.Dialect
public boolean useInputStreamToInsertBlob()
useInputStreamToInsertBlob
in class org.hibernate.dialect.Dialect
public boolean supportsCircularCascadeDeleteConstraints()
supportsCircularCascadeDeleteConstraints
in class org.hibernate.dialect.Dialect
public boolean supportsSubselectAsInPredicateLHS()
supportsSubselectAsInPredicateLHS
in class org.hibernate.dialect.Dialect
public boolean supportsExpectedLobUsagePattern()
supportsExpectedLobUsagePattern
in class org.hibernate.dialect.Dialect
public boolean supportsLobValueChangePropogation()
supportsLobValueChangePropogation
in class org.hibernate.dialect.Dialect
public boolean supportsUnboundedLobLocatorMaterialization()
supportsUnboundedLobLocatorMaterialization
in class org.hibernate.dialect.Dialect
public boolean supportsSubqueryOnMutatingTable()
supportsSubqueryOnMutatingTable
in class org.hibernate.dialect.Dialect
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |