Package org.hibernate.dialect.pagination
Class LimitOffsetLimitHandler
java.lang.Object
org.hibernate.dialect.pagination.AbstractLimitHandler
org.hibernate.dialect.pagination.AbstractSimpleLimitHandler
org.hibernate.dialect.pagination.LimitOffsetLimitHandler
- All Implemented Interfaces:
LimitHandler
A
LimitHandler for databases like PostgreSQL, H2,
and HSQL that support the syntax LIMIT n OFFSET m.
Note that this syntax does not allow specification of an
offset without a limit.-
Field Summary
FieldsFields inherited from class org.hibernate.dialect.pagination.AbstractLimitHandler
NO_LIMIT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal booleanUsually, the offset comes before the limit, but occasionally the offset is specified after the limit.protected StringlimitClause(boolean hasFirstRow) protected StringlimitClause(boolean hasFirstRow, int jdbcParameterCount, ParameterMarkerStrategy parameterMarkerStrategy) protected Stringprotected StringoffsetOnlyClause(int jdbcParameterCount, ParameterMarkerStrategy parameterMarkerStrategy) booleanReturns whetherLimitHandler.processSql(String, int, ParameterMarkerStrategy, QueryOptions)mutates the state of this limit handler and needs to be called for certain other methods to work correctly.booleanDoes this handler support offsetting query results without also specifying a limit?Methods inherited from class org.hibernate.dialect.pagination.AbstractSimpleLimitHandler
insert, processSql, processSql, supportsLimit, supportsVariableLimitMethods inherited from class org.hibernate.dialect.pagination.AbstractLimitHandler
bindLimitParameters, bindLimitParametersAtEndOfQuery, bindLimitParametersAtStartOfQuery, bindLimitParametersFirst, convertToFirstRowValue, forceLimitUsage, getFirstRow, getForUpdatePattern, getMaxOrLimit, hasFirstRow, hasMaxRows, insertAfterDistinct, insertAfterSelect, insertAtEnd, insertBeforeForUpdate, setMaxRows, supportsLimitOffset, useMaxForLimitMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hibernate.dialect.pagination.LimitHandler
getParameterPositionStart, processSql
-
Field Details
-
INSTANCE
-
OFFSET_ONLY_INSTANCE
-
-
Constructor Details
-
LimitOffsetLimitHandler
public LimitOffsetLimitHandler()
-
-
Method Details
-
limitClause
- Specified by:
limitClausein classAbstractSimpleLimitHandler
-
limitClause
protected String limitClause(boolean hasFirstRow, int jdbcParameterCount, ParameterMarkerStrategy parameterMarkerStrategy) - Overrides:
limitClausein classAbstractSimpleLimitHandler
-
offsetOnlyClause
- Overrides:
offsetOnlyClausein classAbstractSimpleLimitHandler
-
offsetOnlyClause
protected String offsetOnlyClause(int jdbcParameterCount, ParameterMarkerStrategy parameterMarkerStrategy) - Overrides:
offsetOnlyClausein classAbstractSimpleLimitHandler
-
bindLimitParametersInReverseOrder
public final boolean bindLimitParametersInReverseOrder()Description copied from class:AbstractLimitHandlerUsually, the offset comes before the limit, but occasionally the offset is specified after the limit. Does this dialect require us to bind the parameters in reverse order?- Overrides:
bindLimitParametersInReverseOrderin classAbstractLimitHandler- Returns:
- true if the correct order is limit then offset
-
supportsOffset
public boolean supportsOffset()Description copied from interface:LimitHandlerDoes this handler support offsetting query results without also specifying a limit?- Specified by:
supportsOffsetin interfaceLimitHandler- Overrides:
supportsOffsetin classAbstractSimpleLimitHandler- Returns:
- True if this handler supports offset alone.
-
processSqlMutatesState
public boolean processSqlMutatesState()Description copied from interface:LimitHandlerReturns whetherLimitHandler.processSql(String, int, ParameterMarkerStrategy, QueryOptions)mutates the state of this limit handler and needs to be called for certain other methods to work correctly.
-