Używam danych wiosennych i wygląda na to moje DAO
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
W powyższym kodzie skomentowany wiersz pokazuje moją intencję. Czy Spring Data zapewnia wbudowaną funkcjonalność do korzystania z takiej metody wyszukiwania wszystkich kolejności rekordów według kolumny według ASC / DESC?
spring
spring-data
spring-data-jpa
Prashant Shilimkar
źródło
źródło
List<StudentEntity> findAllByOrderByIdAsc();
. Dobrym pomysłem jest również dodanie typu zwrotu i usunięcie zbędnego publicznego modyfikatora;)By
tuż przedOrderBy
słowem kluczowym robi różnicę.By
z przoduOrderBy
. Dokumentacja nie mówi o tym .AFAIK, nie sądzę, że jest to możliwe przy bezpośrednim zapytaniu o nazwę metody. Możesz jednak użyć wbudowanego mechanizmu sortowania, używając
Sort
klasy. Repozytorium mafindAll(Sort)
metodę, do której można przekazać instancjęSort
. Na przykład:źródło
findAll()
tego typuCrudRepository<>
nie ma zastosowania do argumentów (Sort)JpaRepository<>
jeśli chcesz skorzystać z powyższego przykładu.Proszę spojrzeć na JPA Spring Data - Dokumentacja referencyjna, sekcja 5.3. Metody zapytania , szczególnie w sekcji 5.3.2. Tworzenie zapytania , w „ Tabeli 3. Obsługiwane słowa kluczowe w nazwach metod ” (linki na dzień 03.05.2019).
Myślę, że ma dokładnie to, czego potrzebujesz i takie samo zapytanie, jak podałeś, że powinno działać ...
źródło
Prosta droga:
Źródło: https://www.baeldung.com/spring-data-sorting
źródło
Tak, możesz sortować za pomocą metody zapytania w Spring Data.
Np .: kolejność rosnąca lub malejąca przy użyciu wartości pola id.
Kod:
alternatywne rozwiązanie:
Wiosenne sortowanie danych: Sortowanie
źródło
W tym przykładzie staram się pokazać pełny przykład personalizacji rodzajów zamówień
użyjesz tego przykładu: Metoda do dynamicznego budowania obiektu, który wystąpienie Sort:
źródło
Łącząc wszystkie powyższe odpowiedzi, możesz napisać kod wielokrotnego użytku za pomocą BaseEntity:
Obiekt DAO przeciąża metodę findAll - w zasadzie nadal używa
findAll()
StudentEntity
rozszerza,BaseEntity
który zawiera powtarzalne pola (być może chcesz również sortować według identyfikatora)Wreszcie, usługi i korzystanie z
SORT_BY_CREATED_AT_DESC
których prawdopodobnie będą wykorzystywane nie tylko wStudentService
.źródło