Ich habe ein Objekt Foo mit einer Liste von Bar. Gibt es eine Möglichkeit, meine Klasse so einzurichten, dass getBars () eine Liste zurückgibt, die mit Collections.sort sortiert wurde? Mit anderen Worten, ich möchte Collections.sort ausführen, wenn die Liste zum ersten Mal ausgefüllt wird. Zur Zeit rufe ich sort an, wenn ich die Sammlung abrufe, was überflüssig sein kann und leicht vergessen wird.
Verwenden Sie J2EE-Style-Mappings mit Hibernate-XML-Dateien oder verwenden Sie JPA-annotierte JavaBeans?
Wenn Sie JPA verwenden, können Sie die @OrderBy
Anmerkung, damit die Datenbank die Sammlung für Sie sortieren kann. Sie können auch @Sort
verwenden Mach es auf der Java-Seite.
Wenn Sie HQL schreiben, sagen wir in @NamedQuery
, können Sie die ORDER BY
-Klausel.
Viele Möglichkeiten, es zu tun!
Ich denke, wenn Sie die Eigenschaft mit @Sort
kommentieren, wird sie automatisch sortiert
Sie haben auch die Möglichkeit, eine benutzerdefinierte Comparator
Referenz:
Überprüfen Sie die Hibernate-Dokumentation für sortierte Sammlungen
Ссылка .
Sie können auch eine andere Methode in Ihr DAO einfügen, die hql verwendet, um die untergeordneten Elemente abzurufen, die Sie über hql sortieren können.
Wenn das Sortierverfahren nicht auf einer einzigen Spalte basiert, habe ich keine andere Wahl, als die Sortierung selbst vorzunehmen. Sie können die Logik zu Ihrem Domänenmodell hinzufügen ...