Ich habe das folgende Problem. Ich habe drei Klassen, A, B und C. A enthält eine OneToMany relatierte Liste von B: s. B enthält eine ManyToOne-Beziehung zu C. C enthält ein Feld namens "name" und B enthält auch ein Feld namens "name". Was ich erreichen möchte, ist, dass die Einträge in der Liste von A in erster Linie nach Cs Namen sortiert sind und in zweiter Linie nach Bs Namen - das Problem ist, dass ich nicht weiß, wie ich das machen soll. Ist es überhaupt möglich?
Ich verwende EclipseLink als meinen JPA-Provider.
%Vor%BEARBEITEN Ja, ich habe verschiedene Variationen ausprobiert, zum Beispiel funktioniert @OrderBy ("c.name") nicht, ich bekomme nur eine Fehlermeldung, dass die Entity-Klasse b kein Feld namens "c.name" enthält.
Es ist NICHT möglich. @OrderBy akzeptiert nur direkte Eigenschaften- / Feldnamen, keine verschachtelten Eigenschaften. Was wirklich Sinn macht, weil die "c" -Tabelle - abhängig von Ihrer Abrufstrategie - nicht einmal Teil einer Auswahl sein kann, die ausgegeben wird, um Ihre "b" s abzurufen.
ChssPly76 hat recht.
Sie können eine benannte Abfrage wie diese erstellen:
%Vor%