gpt4 book ai didi

java - 如何根据特定字段对一组对象进行排序?

转载 作者:搜寻专家 更新时间:2023-11-01 04:07:38 26 4
gpt4 key购买 nike

我需要根据对象的排序字段检索排序的对象列表;它们的集合类型是 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;
}
}

最佳答案

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

尝试将此注释添加到 SortedSet

@javax.persistence.OrderBy("sort")

如果您需要按多列排序,请参阅 this answer .

关于java - 如何根据特定字段对一组对象进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30838526/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com