org.hibernate.dialect
Class DB2400Dialect
java.lang.Object
org.hibernate.dialect.Dialect
org.hibernate.dialect.DB2Dialect
org.hibernate.dialect.DB2400Dialect
public class DB2400Dialect
- extends DB2Dialect
An SQL dialect for DB2/400
- Author:
- Peter DeGregorio (pdegregorio)
This class provides support for DB2 Universal Database for iSeries,
also known as DB2/400.
Method Summary |
String |
getIdentitySelectString()
Get the select command to use to retrieve the last generated IDENTITY
value. |
String |
getLimitString(String sql,
int offset,
int limit)
Given a limit and an offset, apply the limit clause to the query. |
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 |
supportsSequences()
Does this dialect support sequences? |
boolean |
supportsVariableLimit()
Does this dialect support bind variables (i.e., prepared statememnt
parameters) for its limit/offset? |
boolean |
useMaxForLimit()
Does the LIMIT clause take a "maximum" row number instead
of a total number of returned rows?
This is easiest understood via an example. |
Methods inherited from class org.hibernate.dialect.DB2Dialect |
dropConstraints, generateTemporaryTableName, getAddColumnString, getCreateSequenceString, getCreateTemporaryTablePostfix, getCreateTemporaryTableString, getCurrentTimestampSelectString, getDropSequenceString, getForUpdateString, getIdentityColumnString, getIdentityInsertString, getLimitString, getLowercaseFunction, getQuerySequencesString, getResultSet, getSelectClauseNullString, getSequenceNextValString, isCurrentTimestampSelectStringCallable, main, registerResultSetOutParameter, supportsCommentOn, supportsCurrentTimestampSelection, supportsEmptyInList, supportsIdentityColumns, supportsNotNullUnique, supportsOuterJoinForUpdate, supportsParametersInInsertSelect, supportsTemporaryTables, supportsUnionAll |
Methods inherited from class org.hibernate.dialect.Dialect |
appendIdentitySelectToInsert, appendLockHint, applyLocksToSql, areStringComparisonsCaseInsensitive, bindLimitParametersFirst, bindLimitParametersInReverseOrder, buildSQLExceptionConverter, closeQuote, createCaseFragment, createOuterJoinFragment, doesReadCommittedCauseWritersToBlockReaders, doesRepeatableReadCauseReadersToBlockWriters, dropTemporaryTableAfterUse, forUpdateOfColumns, getAddForeignKeyConstraintString, getAddPrimaryKeyConstraintString, getCascadeConstraintsString, getCastTypeName, getColumnComment, getCreateMultisetTableString, getCreateSequenceString, getCreateSequenceStrings, getCreateSequenceStrings, getCreateTableString, getCurrentTimestampSQLFunctionName, getDefaultProperties, getDialect, getDialect, getDropForeignKeyString, getDropSequenceStrings, getForUpdateNowaitString, getForUpdateNowaitString, getForUpdateString, getForUpdateString, getFunctions, getHibernateTypeName, getHibernateTypeName, getIdentityColumnString, getIdentitySelectString, getKeywords, getLockingStrategy, getMaxAliasLength, getNativeIdentifierGeneratorClass, getNoColumnsInsertString, getNullColumnString, getSelectGUIDString, getSelectSequenceNextValString, getTableComment, getTableTypeString, getTypeName, getTypeName, getViolatedConstraintNameExtracter, hasAlterTable, hasDataTypeInIdentityColumn, hasSelfReferentialForeignKeyBug, openQuote, performTemporaryTableDDLInIsolation, qualifyIndexName, quote, registerColumnType, registerColumnType, registerFunction, registerHibernateType, registerHibernateType, registerKeyword, supportsBindAsCallableArgument, supportsCascadeDelete, supportsCircularCascadeDeleteConstraints, supportsColumnCheck, supportsExistsInSelect, supportsExpectedLobUsagePattern, supportsIfExistsAfterTableName, supportsIfExistsBeforeTableName, supportsInsertSelectIdentity, supportsLobValueChangePropogation, supportsPooledSequences, supportsResultSetPositionQueryMethodsOnForwardOnlyCursor, supportsRowValueConstructorSyntax, supportsRowValueConstructorSyntaxInInList, supportsSubqueryOnMutatingTable, supportsSubselectAsInPredicateLHS, supportsTableCheck, supportsUnboundedLobLocatorMaterialization, supportsUnique, supportsUniqueConstraintInCreateAlterTable, toBooleanValueString, toString, transformSelectString, useInputStreamToInsertBlob |
DB2400Dialect
public DB2400Dialect()
supportsSequences
public boolean supportsSequences()
- Description copied from class:
Dialect
- Does this dialect support sequences?
- Overrides:
supportsSequences
in class DB2Dialect
- Returns:
- True if sequences supported; false otherwise.
getIdentitySelectString
public String getIdentitySelectString()
- Description copied from class:
Dialect
- Get the select command to use to retrieve the last generated IDENTITY
value.
- Overrides:
getIdentitySelectString
in class DB2Dialect
- Returns:
- The appropriate select command
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 DB2Dialect
- 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 limitlimit
- The limit of the limit ;)
- Returns:
- The modified query statement with the limit applied.
useMaxForLimit
public boolean useMaxForLimit()
- Description copied from class:
Dialect
- Does the LIMIT clause take a "maximum" row number instead
of a total number of returned rows?
This is easiest understood via an example. Consider you have a table
with 20 rows, but you only want to retrieve rows number 11 through 20.
Generally, a limit with offset would say that the offset = 11 and the
limit = 10 (we only want 10 rows at a time); this is specifying the
total number of returned rows. Some dialects require that we instead
specify offset = 11 and limit = 20, where 20 is the "last" row we want
relative to offset (i.e. total number of rows = 20 - 11 = 9)
So essentially, is limit relative from offset? Or is limit absolute?
- Overrides:
useMaxForLimit
in class DB2Dialect
- Returns:
- True if limit is relative from offset; false otherwise.
supportsVariableLimit
public boolean supportsVariableLimit()
- Description copied from class:
Dialect
- Does this dialect support bind variables (i.e., prepared statememnt
parameters) for its limit/offset?
- Overrides:
supportsVariableLimit
in class Dialect
- Returns:
- True if bind variables can be used; false otherwise.