Festlegen der Reihenfolge einer Liste

8

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.

    
Kim L 09.07.2009, 16:43
quelle

4 Antworten

9

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 09.07.2009, 17:29
quelle
2

ChssPly76 hat recht.

Sie können eine benannte Abfrage wie diese erstellen:

%Vor%     
Grzegorz Oledzki 09.07.2009 22:30
quelle
0

Hast du @OrderBy("c.name", "name") versucht?

Sie sollten nicht "b." weil es impliziert wird, dass @OrderBy für Spalten der Instanzen von B auf dem b-Array ausgeführt wird.

    
Chochos 09.07.2009 16:50
quelle
0

Hast du es versucht:

%Vor%

?

    
Jack Leow 09.07.2009 16:50
quelle

Tags und Links