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:
- Hozzon létre vagy szerezzen be egy PageRequest objektum, amely a Lapozható felület
- 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.