我有一堂课说:“ 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是未知的。

这里的任何帮助都将是很棒的,因为此刻确实困扰着我。

附言我还应该提到在集合上使用OrderBy注释,如下所示:
@OrderBy(clause =“ classC asc”)
(即在classC上没有.name)我得到一个有效的SQL语句,该语句使用classC的ID列(主键)进行排序。

干杯,
标记

最佳答案

不幸的是,做您想做的事是不可能的。我已经回答了类似的问题here

@OrderBy仅支持集合元素的直接属性。

08-25 02:24