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;
}
}
На каких базах вы пытаетесь разобраться? Кажется, вы пытаетесь отсортировать класс не Integer или String? –
Я не использую Hibernate, но javadocs, которые отмечают его как устаревшие, имеют комментарий: «Используйте [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
Мне нужно сортировать Предложить объекты коллекций предложений на основе значений их полей сортировки. –