Class Oracle12LimitHandler

  • All Implemented Interfaces:
    LimitHandler

    public class Oracle12LimitHandler
    extends AbstractLimitHandler
    A LimitHandler for databases which support the ANSI SQL standard syntax FETCH FIRST m ROWS ONLY and OFFSET n ROWS FETCH NEXT m ROWS ONLY.
    • Method Detail

      • processSqlOffsetFetch

        protected String processSqlOffsetFetch​(String sql,
                                               boolean hasFirstRow)
      • processSql

        protected String processSql​(String sql,
                                    int forUpdateIndex,
                                    boolean hasFirstRow)
      • 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