問題描述
我有一個班級說:ClassA",其中包含ClassB"的集合
I have a class say: "ClassA" which has a collection of "ClassB"
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "COLUMN_NAME")
private List<ClassB> lotsOfClasses;
ClassB"具有使用普通舊映射注釋的映射類ClassC":
"ClassB" has a mapped class "ClassC" using plain old mapping annotations:
public class ClassB {
...
@ManyToOne
@JoinColumn(name="AD_POINT_ID")
private ClassC classC;
...
}
如何給ClassA的集合添加@OrderBy注解到ClassB,讓集合按照ClassC的name"屬性排序
How do I add an @OrderBy annotation to ClassA's collection to ClassB, so that the collection is ordered by the "name" property of ClassC
像這樣:
@OrderBy(clause="classC.name asc")
我得到的只是 Oracle 異常,說 classC 是未知的.
All I get are Oracle exceptions saying that classC is unknown.
這里的任何幫助都會很棒,因為它現在真的讓我很煩惱.
Any help here would be awesome, as its really bugging me at the moment.
P.S.我還應該提到在集合上使用 OrderBy 注釋,如下所示:@OrderBy(clause="classC asc")(即沒有 classC 上的 .name)我得到一個有效的 SQL 語句,它使用 classC 的 ID 列(主鍵)進行排序.
干杯,標記
推薦答案
很遺憾,您無法做您想做的事.我在此處回答了類似的問題.
It's unfortunately impossible to do what you want. I've answered a similar question here.
@OrderBy
僅支持集合元素的 direct 屬性.
@OrderBy
only supports direct properties of the collection elements.
這篇關于使用引用類休眠@OrderBy的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!