Interface OrderBy.Builder

Enclosing interface:
OrderBy

public static interface OrderBy.Builder
Builds a OrderBy instance.
// Complex ordering with multiple columns and options
OrderBy complexOrder = OrderBy.builder()
    .descending(Product.FEATURED)  // Featured products first
    .ascending(Product.CATEGORY)   // Then by category
    .descending(OrderBy.NullOrder.NULLS_LAST, Product.RATING)  // Then by rating (nulls last)
    .ascendingIgnoreCase(Product.NAME)  // Finally by name (case-insensitive)
    .build();

// Use in query
List<Entity> products = connection.select(
    Select.where(all(Product.TYPE))
        .orderBy(complexOrder)
        .build());

// Builder pattern allows conditional ordering
OrderBy.Builder orderBuilder = OrderBy.builder();
if (sortByPriority) {
    orderBuilder.descending(Task.PRIORITY);
}
orderBuilder.ascending(Task.DUE_DATE);
if (includeCreatedDate) {
    orderBuilder.descending(Task.CREATED_DATE);
}
OrderBy dynamicOrder = orderBuilder.build();
  • Method Details

    • ascending

      OrderBy.Builder ascending(Column<?>... columns)
      Adds an 'ascending' order by for the given columns
      Parameters:
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • ascendingIgnoreCase

      OrderBy.Builder ascendingIgnoreCase(Column<String>... columns)
      Adds an 'ascending' order by ignoring case for the given columns
      Parameters:
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • ascending

      OrderBy.Builder ascending(OrderBy.NullOrder nullOrder, Column<?>... columns)
      Adds an 'ascending' order by for the given columns
      Parameters:
      nullOrder - the null order
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • ascendingIgnoreCase

      OrderBy.Builder ascendingIgnoreCase(OrderBy.NullOrder nullOrder, Column<String>... columns)
      Adds an 'ascending' order by ignoring case for the given columns
      Parameters:
      nullOrder - the null order
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • descending

      OrderBy.Builder descending(Column<?>... columns)
      Adds a 'descending' order by for the given columns
      Parameters:
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • descendingIgnoreCase

      OrderBy.Builder descendingIgnoreCase(Column<?>... columns)
      Adds a 'descending' order by ignoring case for the given columns
      Parameters:
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • descending

      OrderBy.Builder descending(OrderBy.NullOrder nullOrder, Column<?>... columns)
      Adds a 'descending' order by for the given columns
      Parameters:
      nullOrder - the null order
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • descendingIgnoreCase

      OrderBy.Builder descendingIgnoreCase(OrderBy.NullOrder nullOrder, Column<String>... columns)
      Adds a 'descending' order by ignoring case for the given columns
      Parameters:
      nullOrder - the null order
      columns - the columns
      Returns:
      this builder instance
      Throws:
      IllegalArgumentException - in case columns is empty
    • build

      OrderBy build()
      Returns:
      a new OrderBy instance based on this builder