Java 如何根据特定字段对对象集进行排序?
我需要根据对象的Java 如何根据特定字段对对象集进行排序?,java,hibernate,sorting,Java,Hibernate,Sorting,我需要根据对象的排序字段检索对象的排序列表;它们的收集类型为SortedSet,但代码引发以下异常。 我还尝试添加@Sort注释,如的“排序集合”部分所述,但它似乎已被弃用 例外情况 Caused by: org.hibernate.AnnotationException: A sorted collection must define and ordering or sorting 代码 SortedSet<Offer> offers = new TreeSet<Offer
排序字段
检索对象的排序列表;它们的收集类型为SortedSet
,但代码引发以下异常。
我还尝试添加@Sort
注释,如的“排序集合”部分所述,但它似乎已被弃用
例外情况
Caused by: org.hibernate.AnnotationException: A sorted collection must define and ordering or sorting
代码
SortedSet<Offer> offers = new TreeSet<Offer>();
SortedSet offers=新树集();
课程
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;
}
}
公共类人物{
@身份证
长id;
@独身癖
//@OrderBy(“sort ASC”)您需要指定要放入ORDER BY子句中的列名
尝试将此批注添加到SortedSet
@javax.persistence.OrderBy("sort")
您试图根据哪些基础进行排序?似乎您试图对一个类进行排序,而不是整数或字符串??我不使用Hibernate,但注释为已弃用的Javadoc有一条注释,“根据需要使用或替换”听起来您需要的是SortComparator。我需要根据值对offers集合的Offer对象及其排序字段进行排序。