Ich verwende Federdaten und mein DAO sieht aus wie
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
Im obigen Code zeigt die kommentierte Zeile meine Absicht. Kann spring Data integrierte Funktionen bereitstellen, um mit einer solchen Methode alle Datensätze in einer Spalte mit ASC / DESC zu finden?
spring
spring-data
spring-data-jpa
Prashant Shilimkar
quelle
quelle
List<StudentEntity> findAllByOrderByIdAsc();
. Das Hinzufügen eines Rückgabetyps und das Entfernen des redundanten öffentlichen Modifikators ist ebenfalls eine gute Idee;)By
vor demOrderBy
Schlüsselwort den Unterschied ausmacht.By
vorne ein Extra hinzuzufügenOrderBy
. Die Dokumentation sagt nichts darüber aus .AFAIK, ich denke nicht, dass dies mit einer direkten Methodenbenennungsabfrage möglich ist. Sie können jedoch den integrierten Sortiermechanismus mithilfe der
Sort
Klasse verwenden. Das Repository verfügt über einefindAll(Sort)
Methode, an die Sie eine Instanz übergeben könnenSort
. Zum Beispiel:quelle
findAll()
im TypCrudRepository<>
ist nicht anwendbar für die Argumente (Sortieren)JpaRepository<>
wenn Sie das obige Beispiel verwenden möchten.Bitte lesen Sie die Spring Data JPA - Referenzdokumentation, Abschnitt 5.3. Abfragemethoden , insbesondere in Abschnitt 5.3.2. Abfrageerstellung in " Tabelle 3. Unterstützte Schlüsselwörter in Methodennamen " (Links vom 03.05.2019).
Ich denke, es hat genau das, was Sie brauchen und die gleiche Abfrage, die Sie angegeben haben, sollte funktionieren ...
quelle
Einfacher Weg:
Quelle: https://www.baeldung.com/spring-data-sorting
quelle
Ja, Sie können mithilfe der Abfragemethode in Spring Data sortieren.
Beispiel: aufsteigende oder absteigende Reihenfolge unter Verwendung des Werts des ID-Felds.
Code:
alternative Lösung:
Spring Data Sorting: Sortieren
quelle
Ich versuche in diesem Beispiel, Ihnen ein vollständiges Beispiel für die Personalisierung Ihrer OrderBy-Sortierungen zu zeigen
Sie werden dieses Beispiel verwenden: Eine Methode zum dynamischen Erstellen eines Objekts dieser Instanz von Sort:
quelle
Wenn Sie alle obigen Antworten kombinieren, können Sie mit BaseEntity wiederverwendbaren Code schreiben:
DAO-Objekt überlädt die findAll-Methode - wird im Grunde immer noch verwendet
findAll()
StudentEntity
erweitert,BaseEntity
das wiederholbare Felder enthält (möglicherweise möchten Sie auch nach ID sortieren)Schließlich wird der Service und die Nutzung
SORT_BY_CREATED_AT_DESC
davon wahrscheinlich nicht nur in derStudentService
.quelle