Package org.hibernate.dialect.pagination
Class SybaseASE157LimitHandler
- java.lang.Object
-
- org.hibernate.dialect.pagination.AbstractLimitHandler
-
- org.hibernate.dialect.pagination.SybaseASE157LimitHandler
-
- All Implemented Interfaces:
LimitHandler
public class SybaseASE157LimitHandler extends AbstractLimitHandler
This limit handler is very conservative and is only triggered in simple cases involving a select or select distinct.Note that if the query already contains "top" just after the select or select distinct, we don't add anything to the query. It might just be a column name but, in any case, we just don't add the top clause and default to the previous behavior so it's not an issue.
-
-
Constructor Summary
Constructors Constructor Description SybaseASE157LimitHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringprocessSql(java.lang.String sql, RowSelection selection)Return processed SQL query.booleansupportsLimit()Does this handler support some form of limiting query results via a SQL clause?booleansupportsLimitOffset()Does this handler's LIMIT support (if any) additionally support specifying an offset?booleansupportsVariableLimit()Does this handler support bind variables (i.e., prepared statement parameters) for its limit/offset?booleanuseMaxForLimit()Does the LIMIT clause take a "maximum" row number instead of a total number of returned rows?-
Methods inherited from class org.hibernate.dialect.pagination.AbstractLimitHandler
bindLimitParameters, bindLimitParametersAtEndOfQuery, bindLimitParametersAtStartOfQuery, bindLimitParametersFirst, bindLimitParametersInReverseOrder, convertToFirstRowValue, forceLimitUsage, getMaxOrLimit, setMaxRows
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hibernate.dialect.pagination.LimitHandler
processSql
-
-
-
-
Method Detail
-
processSql
public java.lang.String processSql(java.lang.String sql, RowSelection selection)Description copied from interface:LimitHandlerReturn processed SQL query.- Specified by:
processSqlin interfaceLimitHandler- Overrides:
processSqlin classAbstractLimitHandler- Parameters:
sql- the SQL query to process.selection- the selection criteria for rows.- Returns:
- Query statement with LIMIT clause applied.
-
supportsLimit
public boolean supportsLimit()
Description copied from interface:LimitHandlerDoes this handler support some form of limiting query results via a SQL clause?- Specified by:
supportsLimitin interfaceLimitHandler- Overrides:
supportsLimitin classAbstractLimitHandler- Returns:
- True if this handler supports some form of LIMIT.
-
supportsLimitOffset
public boolean supportsLimitOffset()
Description copied from interface:LimitHandlerDoes this handler's LIMIT support (if any) additionally support specifying an offset?- Specified by:
supportsLimitOffsetin interfaceLimitHandler- Overrides:
supportsLimitOffsetin classAbstractLimitHandler- Returns:
- True if the handler supports an offset within the limit support.
-
useMaxForLimit
public boolean useMaxForLimit()
Description copied from class:AbstractLimitHandlerDoes 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:
useMaxForLimitin classAbstractLimitHandler- Returns:
- True if limit is relative from offset; false otherwise.
-
supportsVariableLimit
public boolean supportsVariableLimit()
Description copied from class:AbstractLimitHandlerDoes this handler support bind variables (i.e., prepared statement parameters) for its limit/offset?- Overrides:
supportsVariableLimitin classAbstractLimitHandler- Returns:
- True if bind variables can be used; false otherwise.
-
-