|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.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.Dialectpublic 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.Dialectpublic 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.Dialectpublic boolean forUpdateOfColumns()
forUpdateOfColumns in class org.hibernate.dialect.Dialectpublic java.lang.String getForUpdateString(java.lang.String aliases)
getForUpdateString in class org.hibernate.dialect.Dialectpublic boolean supportsOuterJoinForUpdate()
supportsOuterJoinForUpdate in class org.hibernate.dialect.Dialectpublic boolean supportsTemporaryTables()
supportsTemporaryTables in class org.hibernate.dialect.Dialectpublic boolean dropTemporaryTableAfterUse()
dropTemporaryTableAfterUse in class org.hibernate.dialect.Dialectpublic boolean supportsCurrentTimestampSelection()
supportsCurrentTimestampSelection in class org.hibernate.dialect.Dialectpublic boolean isCurrentTimestampSelectStringCallable()
isCurrentTimestampSelectStringCallable in class org.hibernate.dialect.Dialectpublic java.lang.String getCurrentTimestampSelectString()
getCurrentTimestampSelectString in class org.hibernate.dialect.Dialectpublic java.lang.String getCurrentTimestampSQLFunctionName()
getCurrentTimestampSQLFunctionName in class org.hibernate.dialect.Dialectpublic boolean supportsUnionAll()
supportsUnionAll in class org.hibernate.dialect.Dialectpublic java.lang.String getNoColumnsInsertString()
getNoColumnsInsertString in class org.hibernate.dialect.Dialectpublic int getMaxAliasLength()
getMaxAliasLength in class org.hibernate.dialect.Dialectpublic boolean qualifyIndexName()
qualifyIndexName in class org.hibernate.dialect.Dialectpublic boolean supportsUnique()
supportsUnique in class org.hibernate.dialect.Dialectpublic boolean supportsUniqueConstraintInCreateAlterTable()
supportsUniqueConstraintInCreateAlterTable in class org.hibernate.dialect.Dialectpublic 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.Dialectpublic java.lang.String getAddPrimaryKeyConstraintString(java.lang.String constraintName)
getAddPrimaryKeyConstraintString in class org.hibernate.dialect.Dialectpublic boolean supportsColumnCheck()
supportsColumnCheck in class org.hibernate.dialect.Dialectpublic boolean supportsCascadeDelete()
supportsCascadeDelete in class org.hibernate.dialect.Dialectpublic boolean supportsNotNullUnique()
supportsNotNullUnique in class org.hibernate.dialect.Dialectpublic java.lang.String getCascadeConstraintsString()
getCascadeConstraintsString in class org.hibernate.dialect.Dialectpublic boolean supportsEmptyInList()
supportsEmptyInList in class org.hibernate.dialect.Dialectpublic boolean useInputStreamToInsertBlob()
useInputStreamToInsertBlob in class org.hibernate.dialect.Dialectpublic boolean supportsCircularCascadeDeleteConstraints()
supportsCircularCascadeDeleteConstraints in class org.hibernate.dialect.Dialectpublic boolean supportsSubselectAsInPredicateLHS()
supportsSubselectAsInPredicateLHS in class org.hibernate.dialect.Dialectpublic boolean supportsExpectedLobUsagePattern()
supportsExpectedLobUsagePattern in class org.hibernate.dialect.Dialectpublic boolean supportsLobValueChangePropogation()
supportsLobValueChangePropogation in class org.hibernate.dialect.Dialectpublic boolean supportsUnboundedLobLocatorMaterialization()
supportsUnboundedLobLocatorMaterialization in class org.hibernate.dialect.Dialectpublic 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 | |||||||||