定义列表的顺序

Kim*_*m L 9 java jpa

我有以下问题.我有三个类,A,B和C. A包含一个关于B:s的OneToMany关系列表.B包含与C的ManyToOne关系.C包含名为"name"的字段,B还包含名为"name"的字段.我想要完成的是让A列表中的项目主要按C的名称排序,其次按B的名称排序 - 问题是我不知道如何做到这一点.它甚至可能吗?

我正在使用EclipseLink作为我的JPA提供程序.


class A {
   @OneToMany
   @OrderBy("b.c.name, b.name") <---- this is the problem
   List<B> b;
}

class B {
   @ManyToOne
   C c;
   String name;
}

class C {
   String name;
}
Run Code Online (Sandbox Code Playgroud)

编辑是的,我尝试了不同的变体,例如@OrderBy("c.name")不起作用,我只是收到一条错误消息,告诉我实体类b不包含名为"c.name"的字段.

Chs*_*y76 11

这是不可能的.@OrderBy只接受直接属性/字段名称,而不接受嵌套属性.这是有道理的,真的,因为"c"表 - 取决于你的提取策略甚至可能不是一个选择的一部分来检索你的"b".