Sortiranje rezultata upita s proljetnim podacima

1. Uvod

U ovom uputstvu idemo naučite kako sortirati rezultate upita s Spring Data.

Prvo ćemo pogledati shemu podataka koje želimo upitati i razvrstati.

A onda ćemo zaroniti pravo u to kako postići te proljetne podatke.

Započnimo!

2. Podaci o ispitivanju

Ispod imamo neke primjere podataka. Iako smo je ovdje predstavili kao tablicu, mogli bismo upotrijebiti bilo koju bazu podataka koju podržavaju Spring Data da bismo je nastavili.

Pitanje na koje želimo odgovoriti je: "Tko zauzima koje mjesto u zrakoplovnoj kompaniji?" ali kako bismo to učinili jednostavnijim za korisnika želimo sortirati prema broju sjedala.

ImePrezimeBroj sjedala
JillSmith50
PredvečerjeJackson94
FredBloggovi22
RickiBobbie36
SiyaKolisi85

3. Domena

Da bismo stvorili Spremište podataka Spring, moramo navesti klasu domene kao i tip id.

Ovdje smo putnika modelirali kao JPA entitet, ali mogli bismo ga jednako lako modelirati kao MongoDB dokument ili bilo koji drugi model apstrakcije:

@Entity class Putnik {@Id @GeneratedValue @Column (nullable = false) private Long id; @Basic (neobavezno = false) @Column (nullable = false) private String firstName; @Basic (nije obavezno = netačno) @Column (nullable = false) private String lastName; @Basic (neobavezno = false) @Column (nullable = false) private int seatNumber; // konstruktor, getteri itd.}

4. Sortiranje s proljetnim podacima

Na raspolaganju nam je nekoliko različitih opcija za sortiranje s Spring Data.

4.1. Sortiranje s Naruči Metoda Ključna riječ

Jedna od mogućnosti bila bi uporaba izvedbe metode Spring Data pri čemu se upit generira iz imena metode i potpisa.

Za sortiranje podataka ovdje trebamo učiniti ključnu riječ Naruči u nazivu naše metode zajedno s imenima svojstava i smjerom (Asc ili Desc) po kojima želimo sortirati.

Ovu konvenciju možemo koristiti za stvaranje upita koji putnike vraća u rastućem redoslijedu prema broju sjedala:

sučelje PassengerRepository proširuje JpaRepository {List findByOrderBySeatNumberAsc (); }

Ovu ključnu riječ također možemo kombinirati sa svim standardnim imenima metode Spring Data.

Pogledajmo primjer metode koja pronalazi putnike po prezimenu i narudžbe prema broju sjedala:

Popis findByLastNameOrderBySeatNumberAsc (Niz lastName);

4.2. Razvrstavanje s Vrsta Parametar

Naša je druga mogućnost uključiti a Vrsta parametar navodeći imena svojstava i smjer po kojem želimo sortirati:

Popis putnika = repository.findAll (Sort.by (Sort.Direction.ASC, "seatNumber"));

U ovom slučaju koristimo findAll () metoda i dodavanje Vrsta opcija pri pozivu.

Ovaj parametar možemo dodati i u novu definiciju metode:

Popis findByLastName (niz lastName, sortiranje);

Konačno, ako možda vršimo stranični poziv, svoju vrstu možemo odrediti u a Pageable objekt:

Stranica stranice = repository.findAll (PageRequest.of (0, 1, Sort.by (Sort.Direction.ASC, "seatNumber")));

5. Zaključak

Imamo dvije jednostavne mogućnosti za sortiranje podataka s Spring Data kroz izvođenje metode pomoću Naruči pomoću ključne riječi Vrsta objekt kao parametar metode.

Kao i uvijek, kod možete pronaći na GitHubu.