Sortering af forespørgselsresultater med forårsdata

1. Introduktion

I denne vejledning skal vi lære at sortere forespørgselsresultater med Spring Data.

Først ser vi på skemaet for de data, der ønsker at forespørge og sortere.

Og så dykker vi lige ind i, hvordan vi opnår de forårsdata.

Lad os komme igang!

2. Testdataene

Nedenfor har vi nogle eksempler på data. Selvom vi har repræsenteret det her som en tabel, kunne vi bruge en hvilken som helst af de databaser, der understøttes af Spring Data, til at fastholde den.

Spørgsmålet, vi vil besvare, er: "Hvem besætter hvilket sæde i flyselskabet?" men for at gøre det mere brugervenligt ønsker vi at sortere efter sæde nummer.

FornavnEfternavnSæde nummer
JillSmith50
EvaJackson94
FredBloggs22
RickiBobbie36
SiyaKolisi85

3. Domæne

For at oprette et Spring Data Repository er vi nødt til at give en domæneklasse såvel som en id-type.

Her har vi modelleret vores passager som en JPA-enhed, men vi kunne lige så godt have modelleret det som et MongoDB-dokument eller enhver anden modelabstraktion:

@Entity-klasse Passager {@Id @GeneratedValue @Column (nullable = false) privat Lang id; @Basic (optional = false) @Column (nullable = false) private String firstName; @Basic (optional = false) @Column (nullable = false) private String efternavn; @Basic (valgfri = falsk) @Column (nullable = false) private int seatNumber; // konstruktør, getters osv.}

4. Sortering med fjederdata

Vi har et par forskellige muligheder til sortering med Spring Data.

4.1. Sortering med Bestil af Metode nøgleord

En mulighed ville være at bruge Spring Datas metodeafledning, hvorved forespørgslen genereres ud fra metodens navn og signatur.

Alt hvad vi skal gøre her for at sortere vores data er at inkludere nøgleordet Bestil af i vores metode navn sammen med ejendomsnavn (e) og retning (Asc eller Desc), som vi vil sortere efter.

Vi kan bruge denne konvention til at oprette en forespørgsel, der returnerer vores passagerer i stigende rækkefølge efter sæde nummer:

interface PassengerRepository udvider JpaRepository {List findByOrderBySeatNumberAsc (); }

Vi kan også kombinere dette nøgleord med alle standardnavne på Spring Data-metoden.

Lad os se et eksempel på en metode, der finder passagerer efter efternavn og ordrer efter sæde nummer:

Liste findByLastNameOrderBySeatNumberAsc (streng efternavn);

4.2. Sortering med en Sortere Parameter

Vores anden mulighed er at inkludere en Sortere parameter angivelse af ejendomsnavne og retninger, som vi vil sortere efter:

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

I dette tilfælde bruger vi findAll () metode og tilføje Sortere mulighed, når du kalder det.

Vi kan også tilføje denne parameter til en ny metodedefinition:

Liste findByLastName (streng efternavn, Sort sorter);

Endelig, hvis vi måske søger, kan vi specificere vores sortering i a Sidelig objekt:

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

5. Konklusion

Vi har to nemme muligheder for at sortere data med Spring Data gennem metodeudledning ved hjælp af Bestil af nøgleord eller ved hjælp af Sortere objekt som en metodeparameter.

Som altid kan du finde koden over på GitHub.


$config[zx-auto] not found$config[zx-overlay] not found