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