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
OrderBy
annotation 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
SortComparator
to sort the collection in memory using aComparator
, orSortNatural
to sort the collection in memory according to its natural order. - Use
OrderColumn
to maintain the order of aList
with 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 first
ornulls last
.
-