Annotates a repository method to request sorting of results.
When multiple OrderBy annotations are specified on a
repository method, the precedence for sorting follows the order
in which the OrderBy annotations are specified,
and after that follows any sort criteria that is supplied
dynamically by Sort parameters or by a
Pageable parameter with Pageable.sorts().
For example, the following sorts first by the
lastName attribute in ascending order,
and secondly, for entities with the same lastName,
it then sorts by the firstName attribute,
also in ascending order. For entities with the same
lastName and firstName,
it then sorts by criteria that is specified in the
Pageable.sorts().
@OrderBy("lastName")
@OrderBy("firstName")
Person[] findByZipCode(int zipCode, Pageable pagination);
The precise meaning of ascending and descending order is
defined by the database, but generally ascending order for
numeric values means smaller numbers before larger numbers and for
string values means A before Z.
A repository method will fail if an OrderBy annotation is
specified in combination with any of:
- an
OrderBykeyword - a
Queryannotation that contains anORDER BYclause.
A repository method will fail with a
DataException
or a more specific subclass if the database is incapable of
ordering with the requested sort criteria.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic @interfaceEnables multipleOrderByannotations on the same type. -
Required Element Summary
Required Elements -
Optional Element Summary
Optional ElementsModifier and TypeOptional ElementDescriptionbooleanIndicate whether to use descending order when sorting by this attribute.booleanIndicates whether or not to request case insensitive ordering from a database with case sensitive collation.
-
Element Details
-
value
String valueEntity attribute name to sort by.
For example,
@OrderBy("age") Stream<Person> findByLastName(String lastName);- Returns:
- entity attribute name.
-
-
-
descending
boolean descendingIndicate whether to use descending order when sorting by this attribute.
The default value of
falsemeans ascending sort.- Returns:
- whether to use descending (versus ascending) order.
- Default:
- false
-
ignoreCase
boolean ignoreCaseIndicates whether or not to request case insensitive ordering from a database with case sensitive collation. A database with case insensitive collation performs case insensitive ordering regardless of the requested
ignoreCasevalue.The default value is
false.- Returns:
- whether or not to request case insensitive sorting for the property.
- Default:
- false
-