Module is.codion.framework.domain
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 Summary
Modifier and TypeMethodDescriptionAdds an 'ascending' order by for the given columnsascending
(OrderBy.NullOrder nullOrder, Column<?>... columns) Adds an 'ascending' order by for the given columnsascendingIgnoreCase
(Column<String>... columns) Adds an 'ascending' order by ignoring case for the given columnsascendingIgnoreCase
(OrderBy.NullOrder nullOrder, Column<String>... columns) Adds an 'ascending' order by ignoring case for the given columnsbuild()
descending
(Column<?>... columns) Adds a 'descending' order by for the given columnsdescending
(OrderBy.NullOrder nullOrder, Column<?>... columns) Adds a 'descending' order by for the given columnsdescendingIgnoreCase
(Column<?>... columns) Adds a 'descending' order by ignoring case for the given columnsdescendingIgnoreCase
(OrderBy.NullOrder nullOrder, Column<String>... columns) Adds a 'descending' order by ignoring case for the given columns
-
Method Details
-
ascending
Adds an 'ascending' order by for the given columns- Parameters:
columns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
ascendingIgnoreCase
Adds an 'ascending' order by ignoring case for the given columns- Parameters:
columns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
ascending
Adds an 'ascending' order by for the given columns- Parameters:
nullOrder
- the null ordercolumns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
ascendingIgnoreCase
Adds an 'ascending' order by ignoring case for the given columns- Parameters:
nullOrder
- the null ordercolumns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
descending
Adds a 'descending' order by for the given columns- Parameters:
columns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
descendingIgnoreCase
Adds a 'descending' order by ignoring case for the given columns- Parameters:
columns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
descending
Adds a 'descending' order by for the given columns- Parameters:
nullOrder
- the null ordercolumns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
descendingIgnoreCase
Adds a 'descending' order by ignoring case for the given columns- Parameters:
nullOrder
- the null ordercolumns
- the columns- Returns:
- this builder instance
- Throws:
IllegalArgumentException
- in casecolumns
is empty
-
build
OrderBy build()- Returns:
- a new
OrderBy
instance based on this builder
-