3
我需要根據它們的sort field
檢索對象的排序列表;它們的集合類型是SortedSet
,但代碼會拋出以下異常。 我也嘗試添加@Sort
註釋,如hibernate documentation的排序收集部分中所述,但它似乎已被棄用!如何根據特定字段獲得一組有排序的對象?
異常
Caused by: org.hibernate.AnnotationException: A sorted collection must define and ordering or sorting
代碼
SortedSet<Offer> offers = new TreeSet<Offer>();
類
public class Person {
@Id
long id;
@OneToMany
//@OrderBy("sort ASC") <<< If I use this just one offer will be in the collection
SortedSet<Offer> offers = new TreeSet<Offer>();
...
}
public class Offer implements Comparable<Offer>{
@Id
long id;
String name;
short sort;
@Override
public int compareTo(Offer o) {
return sort - o.sort;
}
}
在其基部你想排序?看來你正在嘗試對一個類進行排序,而不是整數或字符串? –
我沒有使用Hibernate,但注意到它已過時的javadoc有一條評論,「Use [SortComparator](https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/annotations/根據需要改爲SortComparator.html)或[SortNatural](https://docs.jboss.org/hibernate/orm/4.3/javadocs/org/hibernate/annotations/SortNatural.html)。「聽起來你的需求是SortComparator。 – yshavit
我需要根據其排序字段的值對Offer對象進行排序。 –