Class LegacyOracleLimitHandler

java.lang.Object
org.hibernate.dialect.pagination.AbstractLimitHandler
org.hibernate.dialect.pagination.LegacyOracleLimitHandler
All Implemented Interfaces:
LimitHandler

public class LegacyOracleLimitHandler extends AbstractLimitHandler
A LimitHandler for Oracle prior to 12c, which uses ROWNUM.
  • Constructor Details

    • LegacyOracleLimitHandler

      public LegacyOracleLimitHandler(DatabaseVersion version)
  • Method Details

    • processSql

      public String processSql(String sql, Limit limit)
      Specified by:
      processSql in interface LimitHandler
      Overrides:
      processSql in class AbstractLimitHandler
    • supportsLimit

      public boolean supportsLimit()
      Description copied from interface: LimitHandler
      Does this handler support limiting query results?
      Specified by:
      supportsLimit in interface LimitHandler
      Overrides:
      supportsLimit in class AbstractLimitHandler
      Returns:
      True if this handler supports limit alone.
    • supportsOffset

      public boolean supportsOffset()
      Description copied from interface: LimitHandler
      Does this handler support offsetting query results without also specifying a limit?
      Specified by:
      supportsOffset in interface LimitHandler
      Overrides:
      supportsOffset in class AbstractLimitHandler
      Returns:
      True if this handler supports offset alone.
    • forceLimitUsage

      public boolean forceLimitUsage()
      Description copied from class: AbstractLimitHandler
      Generally, if there is no limit applied to a Hibernate query we do not apply any limits to the SQL query. This option forces that the limit be written to the SQL query.
      Overrides:
      forceLimitUsage in class AbstractLimitHandler
      Returns:
      true to force limit into SQL query even if none specified in Hibernate query; false otherwise.
    • bindLimitParametersInReverseOrder

      public boolean bindLimitParametersInReverseOrder()
      Description copied from class: AbstractLimitHandler
      Usually, 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:
      bindLimitParametersInReverseOrder in class AbstractLimitHandler
      Returns:
      true if the correct order is limit then offset
    • useMaxForLimit

      public boolean useMaxForLimit()
      Description copied from class: AbstractLimitHandler
      Does the limit clause expect the number of the last row, or the "page size", the maximum number of rows we want to receive? Hibernate's Query.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 than Query.setFirstResult(int).
      Overrides:
      useMaxForLimit in class AbstractLimitHandler
      Returns:
      true if the limit clause expects the number of the last row, false if it expects the page size