Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据特定字段对对象集进行排序?_Java_Hibernate_Sorting - Fatal编程技术网

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对象及其排序字段进行排序。