我有一堂课说:“ ClassA”,其中包含“ ClassB”的集合
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "COLUMN_NAME") private List<ClassB> lotsOfClasses;
“ ClassB”具有使用普通旧映射注释的映射类“ ClassC”:
public class ClassB { ... @ManyToOne @JoinColumn(name="AD_POINT_ID") private ClassC classC; ... }
如何将@OrderBy批注添加到ClassA的ClassB的集合中,以便按ClassC的“名称”属性对集合进行排序
像这样:
@OrderBy(clause="classC.name asc")
我得到的都是Oracle异常,它说classC是未知的。
这里的任何帮助都将非常棒,因为此刻确实困扰着我。
PS我还应该提到,在这样的集合上使用OrderBy批注:@OrderBy(clause =“ classC asc”)(即在classC上没有.name)我得到一个有效的SQL语句,该语句使用ID列(主要keyC)排序。
干杯,马克
不幸的是,做您想做的事是不可能的。我在这里回答了类似的问题。
@OrderBy仅支持集合元素的 直接 属性。
@OrderBy