如何根据特定字段创建一组有序的对象?

Dan*_*own 3 java sorting hibernate

我需要根据它们检索对象的排序列表sort field; 他们的集合类型是SortedSet但代码抛出异常.我也尝试添加@Sort注释,如hibernate文档的排序集合部分所解释,但它似乎已被弃用!

例外

Caused by: org.hibernate.AnnotationException: A sorted collection must define and ordering or sorting
Run Code Online (Sandbox Code Playgroud)

SortedSet<Offer> offers = new TreeSet<Offer>();
Run Code Online (Sandbox Code Playgroud)

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;
 }
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*her 13

您需要指定要放在ORDER BY子句中的列名

尝试将此注释添加到SortedSet

@javax.persistence.OrderBy("sort")
Run Code Online (Sandbox Code Playgroud)