eclipselink @orderby可比

Geo*_*rey 1 java jpa sql-order-by eclipselink

设为以下实体:

@Entity
public class Person {
    @Id
    long id;

    @ManyToOne
    Family fam;

    @ManyToOne
    Job job;
 }

@Entity
class Family{
    @Id
    long id;

    @OneToMany(mappedBy="fam")
    @OrderBy("job")
    List<Person> p;
}


@Entity
class Job implements Comparable<Job>{
    @Id
    long id;

    String descr;

    public int compareTo(Job o) {
        return descr.compareTo(o.descr);
    }
}
Run Code Online (Sandbox Code Playgroud)

我面临的问题来自@orderby批注,这与我的预期相去甚远,似乎不支持可比较的实体。

我正在使用eclipselink 2.3,想知道是否还有其他工具可以解决此问题。

最好的问候
乔治

JB *_*zet 5

@OrderBy用于在生成的SQL查询中使用“ order by”子句对实体进行排序。因此,当然,它不是compareTo方法。如果要使用Java进行排序,则只需在getter中返回一个排序列表getPersons()