Record Class PaginationJdbcInstructions

java.lang.Object
java.lang.Record
org.hibernate.dialect.pagination.spi.PaginationJdbcInstructions
Record Components:
parametersAtStart - integer pagination values bound before original query parameters
parametersAtEnd - integer pagination values bound after original query parameters
maxRows - JDBC maximum rows, or null when no JDBC maximum is needed
rowsToSkip - rows Hibernate must skip in the returned result set

@SPI public record PaginationJdbcInstructions(List<Integer> parametersAtStart, List<Integer> parametersAtEnd, @Nullable Integer maxRows, int rowsToSkip) extends Record

Immutable JDBC execution instructions produced by a LimitHandler together with paginated SQL.

Hibernate binds parametersAtStart in list order, then the query's original parameters, and then parametersAtEnd in list order. It applies maxRows through PreparedStatement.setMaxRows() and advances rowsToSkip rows in the result set. A handler must encode each responsibility exactly once; for example, an offset represented in SQL must not also be returned as rows to skip.

Since:
8.0
  • Field Details

  • Constructor Details

    • PaginationJdbcInstructions

      public PaginationJdbcInstructions(List<Integer> parametersAtStart, List<Integer> parametersAtEnd, @Nullable Integer maxRows, int rowsToSkip)
      Creates an instance of a PaginationJdbcInstructions record class.
      Parameters:
      parametersAtStart - the value for the parametersAtStart record component
      parametersAtEnd - the value for the parametersAtEnd record component
      maxRows - the value for the maxRows record component
      rowsToSkip - the value for the rowsToSkip record component
  • Method Details

    • parameterPositionStart

      public int parameterPositionStart()
      One-based position of the first original query parameter after pagination parameters inserted at the start.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • parametersAtStart

      public List<Integer> parametersAtStart()
      Returns the value of the parametersAtStart record component.
      Returns:
      the value of the parametersAtStart record component
    • parametersAtEnd

      public List<Integer> parametersAtEnd()
      Returns the value of the parametersAtEnd record component.
      Returns:
      the value of the parametersAtEnd record component
    • maxRows

      @Nullable public Integer maxRows()
      Returns the value of the maxRows record component.
      Returns:
      the value of the maxRows record component
    • rowsToSkip

      public int rowsToSkip()
      Returns the value of the rowsToSkip record component.
      Returns:
      the value of the rowsToSkip record component