Hier eine Anleitung anhand eines Beispiels:
field set --fieldName orderedBs --type ~.domain.ClassB
--cardinality ONE_TO_MANY --class ~.domain.ClassA
--cardinality ONE_TO_MANY --class ~.domain.ClassA
field number --fieldName orderNo --type java.lang.Integer --min 0
Damit erhält man ein unsortiertes Set generiert, es gibt aber kein Schlüsselwort um eine sortierte Liste zu erzeugen. Alle Attribute für die Sortierung sind aber bereits angelegt.
Das Gute: Die Views und Controller funktionieren jetzt schon ohne Anpassung für sortierte Listen.
Das Gute: Die Views und Controller funktionieren jetzt schon ohne Anpassung für sortierte Listen.
Die einzige Änderung die man nun per Hand machen muss, ist die Umstellung in der generierten Modell - Klasse (~domain.ClassA):
@OneToMany(mappedBy = "classA", cascade = CascadeType.ALL)
@OrderBy("orderNo")
private List<ClassB>
orderedBs = new LinkedList<ClassB>();
Das war es, es werden sortierte Ergebnisse in den Views ohne weitere Anpassungen geliefert.
Kleiner Pferdefuß: da "order" ein Schlüsselwort in SQL ist, kann es nicht als Attributname für die Annotation OrderBy verwendet werden. D.h. @OrderBy("order") ist durch SQL verboten! Das merkt aber erst die Datenbank, die Annotation, Hibernate und Spring halten sich hier völlig ruhig.
Kleiner Pferdefuß: da "order" ein Schlüsselwort in SQL ist, kann es nicht als Attributname für die Annotation OrderBy verwendet werden. D.h. @OrderBy("order") ist durch SQL verboten! Das merkt aber erst die Datenbank, die Annotation, Hibernate und Spring halten sich hier völlig ruhig.
Keine Kommentare:
Kommentar veröffentlichen