Spring Boot ve Spring Data JPA ile Sayfalama

0 4,552

Bu yazıda Spring Data JPA ile rest servislerde sayfalama üzerinde duracağız. Sayfalama için URL’den hem sayfada listelenecek ürün adetini hem de sayfa numarasını parametre olarak alacağız.

  • Spring Boot 2.3.6
  • Java 8
  • Lombok
  • Maven
  • H2

Aşağıdaki bağımlılıklarımızı pom.xml’e ekliyoruz.

Entity

Controller

Service

Repository katmanına göndereceğimiz Pageable objesini burada hazırlıyoruz. Bu class Spring data’nın sunduğu bir interface. PageRequest ise Pageable’dan kalıtılmış bir class ve gördüğümüz üzere overload edilmiş üç metoda sahip.  Controller katmanından aldığımız sayfa numarasını ve listelenecek ürün adetini ve isterseniz sıralamanın nasıl olmasını gerektiğini bu metodlara verebilirsiniz.

Respository

Burada methodun dönüş tipi Page.  Bu interface aşağıdaki yorum satırında da söylediği gibi içerdiği liste hakkında bilgi verir. Bazı faydalı bilgiler aynı zamanda Slice‘da da mevcut. Slice’dan extends edildiği zaten gözüküyor, ben uzatmamak için buraya kodu eklemeyeceğim fakat incelenmesinde fayda var.

Son olarak ise listelemek için kayıt gerektiği için uygulama ayağa kalkerken tabloya aşağıdaki gibi kayıt atabiliriz.

http://localhost:8080/products

ya da

http://localhost:8080/products?page=0&size=5

https://github.com/cemdrman/restservice-pagination/tree/master

Faydalı olması dileğiyle.

Email adresiniz yayınlanmayacaktır.