Interface OrderBy.Builder

Enclosing interface:
OrderBy

public static sealed interface OrderBy.Builder
Builds a OrderBy instance.
// Complex ordering with multiple columns and options
OrderBy order = OrderBy.builder()
				.descending(Track.RATING) // Highest rated first
				.ascending(Track.ARTIST_NAME) // Then by artist
				.descending(OrderBy.NullOrder.NULLS_LAST, Track.COMPOSER) // Then by composer (nulls last)
				.ascendingIgnoreCase(Track.NAME) // Finally by name (case-insensitive)
				.build();

// Use in query
List<Entity> tracks = connection.select(
				Select.all(Track.TYPE)
								.orderBy(order));

// Builder pattern allows conditional ordering
OrderBy.Builder builder = OrderBy.builder();
if (byRating) {
	builder.descending(Track.RATING);
}
builder.ascending(Track.NAME);
if (byPlayCount) {
	builder.descending(Track.PLAY_COUNT);
}
OrderBy dynamicOrder = builder.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