Class LegacyDB2LimitHandler
java.lang.Object
org.hibernate.dialect.pagination.spi.AbstractLimitHandler
org.hibernate.dialect.pagination.spi.LegacyDB2LimitHandler
- All Implemented Interfaces:
LimitHandler
A
LimitHandler for DB2. Uses FETCH FIRST n ROWS ONLY,
together with ROWNUMBER() when there is an offset. (DB2 does
not support the ANSI syntax OFFSET n ROWS.)- Since:
- 8.0
-
Field Summary
FieldsFields inherited from class AbstractLimitHandler
NO_LIMIT -
Method Summary
Modifier and TypeMethodDescriptionprocessSql(PaginationRequest request) Apply pagination to a complete SQL string.final booleanDoes this handler support limiting query results?final booleanDoes this handler support bind variables (JDBC prepared statement parameters) for its limit/offset?final booleanDoes the limit clause expect the number of the last row, or the "page size", the maximum number of rows we want to receive? Hibernate'sQuery.setMaxResults(int)accepts the page size, so the number of the last row is obtained by adding the number of the first row, which is one greater thanQuery.setFirstResult(int).Methods inherited from class AbstractLimitHandler
bindLimitParametersFirst, bindLimitParametersInReverseOrder, bindLimitParameterValues, convertToFirstRowValue, forceLimitUsage, getFirstRow, getForUpdatePattern, getMaxOrLimit, hasFirstRow, hasMaxRows, insertAfterDistinct, insertAfterSelect, insertAtEnd, insertBeforeForUpdate, jdbcInstructions, jdbcMaxRows, parameterPositionStart, result, rowsToSkip, supportsLimitOffset, supportsOffset
-
Field Details
-
INSTANCE
-
-
Method Details
-
processSql
Description copied from interface:LimitHandlerApply pagination to a complete SQL string.
Return
PaginationResult.unchanged(String)when the request needs no SQL or JDBC pagination. The returned JDBC instructions must describe every pagination parameter introduced by the rewritten SQL.- Specified by:
processSqlin interfaceLimitHandler- Overrides:
processSqlin classAbstractLimitHandler- Parameters:
request- immutable completed-SQL pagination input- Returns:
- rewritten SQL and the JDBC work needed to execute it
-
supportsLimit
public final boolean supportsLimit()Description copied from interface:LimitHandlerDoes this handler support limiting query results?- Specified by:
supportsLimitin interfaceLimitHandler- Overrides:
supportsLimitin classAbstractLimitHandler- Returns:
- True if this handler supports limit alone.
-
useMaxForLimit
public final boolean useMaxForLimit()Description copied from class:AbstractLimitHandlerDoes the limit clause expect the number of the last row, or the "page size", the maximum number of rows we want to receive? Hibernate'sQuery.setMaxResults(int)accepts the page size, so the number of the last row is obtained by adding the number of the first row, which is one greater thanQuery.setFirstResult(int).- Overrides:
useMaxForLimitin classAbstractLimitHandler- Returns:
- true if the limit clause expects the number of the last row, false if it expects the page size
-
supportsVariableLimit
public final boolean supportsVariableLimit()Description copied from class:AbstractLimitHandlerDoes this handler support bind variables (JDBC prepared statement parameters) for its limit/offset?- Overrides:
supportsVariableLimitin classAbstractLimitHandler- Returns:
- true if bind variables can be used
-