Package org.hibernate.annotations
Annotation Interface SQLOrder
Order a collection using an expression or list of expression written
in native SQL. For example,
@SQLOrder("first_name, last_name"),
@SQLOrder("char_length(name) desc"), or even
@SQLOrder("name asc nulls last").
The order is applied by the database when the collection is fetched, but is not maintained by operations that mutate the collection in memory.
If the collection is a Set or Map,
the order is maintained using a LinkedHashSet or
LinkedHashMap. If the collection is a bag or
List, the order is maintained by the underlying
ArrayList.
There are several other ways to order or sort a collection:
- Use the JPA-defined
OrderByannotation to order using an expression written in HQL/JPQL. Since HQL is more portable between databases, this is the preferred alternative most of the time. - Use
SortComparatorto sort the collection in memory using aComparator, orSortNaturalto sort the collection in memory according to its natural order. - Use
OrderColumnto maintain the order of aListwith a dedicated index column.
It's illegal to use SQLOrder together with the JPA-defined
OrderBy for the same collection.
- Since:
- 6.3
- See Also:
-
Required Element Summary
Required Elements
-
Element Details
-
value
String valueA comma-separated list native SQL expressions used to sort the collection elements. Each element of the list may optionally specify:asc-ending ordesc-ending order, or evennulls firstornulls last.
-