Lapozás és rendezés a Spring Data JPA segítségével

1. Áttekintés

A lapozás gyakran hasznos, ha nagy adathalmazunk van, és kisebb darabokban szeretnénk bemutatni a felhasználónak.

Ezenkívül gyakran lapozgatnunk kell ezeket az adatokat bizonyos szempontok szerint.

Ebben az oktatóanyagban megtanuljuk, hogyan lehet egyszerűen lapozni és rendezni a Spring Data JPA segítségével.

2. Kezdeti beállítás

Először tegyük fel, hogy van egy Termék entitás, mint domain osztályunk:

@Entity public class Product {@Id private long id; privát karakterlánc neve; magán dupla ár; // kivitelezők, szerelvények és beállítók}

Mindegyikünk Termék példányok egyedi azonosítóval rendelkeznek: id, annak név és annak ár társul hozzá.

3. Adattár létrehozása

Hozzáférés a Terméks, szükségünk lesz egy ProductRepository:

nyilvános felület A ProductRepository kiterjeszti a PagingAndSortingRepository {List findAllByPrice (dupla ár, lapozható lapozható); }

MeghosszabbításávalPagingAndSortingRepository, kapunk findAll (lapozható lapozható) és findAll (rendezés rendezése) lapozás és rendezés módszerei.

Ezzel szemben választhattuk volna a meghosszabbítást JpaRepository ehelyett, ahogy kiterjed PagingAndSortingRepository is.

Ha kinyújtjuk PagingAndSortingRepository, felvehetjük a saját módszereinket Lapozható és Fajta mint paramétereket, mint itt tettük findAllByPrice.

Vessünk egy pillantást arra, hogyan lehet lapozni a mi oldalunkat Terméks új módszerünket alkalmazva.

4. Lapozás

Miután a tárházunk kiterjed PagingAndSortingRepository, csak meg kell:

  1. Hozzon létre vagy szerezzen be egy PageRequest objektum, amely a Lapozható felület
  2. Adja át a PageRequest Az objektum argumentumként szolgál a tárolni kívánt módszerrel

Hozhatunk létre a PageRequest objektumot a kért oldalszám és oldalméret megadásával.

Itt az oldalszám nullától kezdődik:

Lapozható firstPageWithTwoElements = PageRequest.of (0, 2); Lapozható secondPageWithFiveElements = PageRequest.of (1, 5);

A tavaszi MVC-ben választhatunk a Lapozható például a vezérlőnkben, a Spring Data Web Support segítségével.

Ha megvan a miénk PageRequest objektum, átadhatjuk a tárunk metódusának meghívása közben:

Page allProducts = productRepository.findAll (firstPageWithTwoElements); Sorolja fel az allTenDollarProducts = productRepository.findAllByPrice (10, secondPageWithFiveElements);

A findAll (lapozható lapozható) A metódus alapértelmezés szerint a Oldal tárgy.

Azonban, választhatunk, hogy visszatérünk a Oldal, a Szelet, vagy a Lista bármelyik egyéni módszerünkből visszaküldjük a lapozott adatokat.

A Oldal például a listája Terméks a rendelkezésre álló oldalak teljes számáról is tud. További számlálási lekérdezést indít el annak elérése érdekében. Az ilyen általános költségek elkerülése érdekében ehelyett visszaadhatjuk a Szelet vagy a Lista.

A Szelet csak azt tudja, hogy a következő szelet elérhető-e vagy sem.

5. Lapozás és válogatás

Hasonlóképpen, hogy csak lekérdezési eredményeink legyenek rendezve, egyszerűen átadhatunk egy példányt Fajta a módszerhez:

Page allProductsSortedByName = productRepository.findAll (Sort.by ("név"));

Mi lenne azonban, ha szeretnénk rendezni és lapozni az adatainkat?

Ezt úgy tehetjük meg, hogy a rendezési részleteket átadjuk a miénknek PageRequest maga a tárgy:

Lapozható sortedByName = PageRequest.of (0, 3, Sort.by ("név")); Lapozható sortedByPriceDesc = PageRequest.of (0, 3, Sort.by ("ár"). Csökkenő ()); Lapozható sortedByPriceDescNameAsc = PageRequest.of (0, 5, Sort.by ("ár"). Csökkenő (). És (Sort.by ("név")));

Válogatási követelményeink alapján megadhatjuk a rendezési mezőket és a rendezés irányát miközben létrehozta a mi PageRequest példa.

Szokás szerint ezt aztán átadhatjuk Lapozható írja be a példányt az adattár metódusába.

6. Következtetés

Ebben a cikkben megtanultuk, hogyan kell lapozni és rendezni a lekérdezési eredményeket a Spring Data JPA-ban.

Mint mindig, az ebben a cikkben használt teljes kódpéldák elérhetők a Github oldalon.