Nou Generator de prompt AI — scrie prompturi mai bune pentru ChatGPT, Claude și Gemini →

Paginare și Sortare cu Pageable și Page<T> în Spring Boot

data Spring Boot 3.x / Spring Data JPA Q&A / Distribuie cod

Gestionarea seturilor masive de date în Spring Data JPA prin interfața Pageable, Page<T>, Slice<T> și clauze SQL LIMIT/OFFSET automate.

Sintaxă
Pageable pageable = PageRequest.of(page, size, Sort.by("..."))

Extragerea a mii de înregistrări din baza de date într-o singură cerere poate bloca memoria JVM și rețeaua. Spring Data oferă suport nativ pentru paginare prin interfața Pageable și clasa returnată Page<T>.

Hibernate generează automat clauzele SQL corespunzătoare de LIMIT și OFFSET, precum și interogarea paralelă de COUNT pentru a calcula numărul total de pagini și elemente disponibile, date ideale pentru trimis către frontend.

Exemplu: Paginare completă în Repository și expunere în Controller
package ro.dexblog.demo.controller;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.web.bind.annotation.*;
import ro.dexblog.demo.model.Product;
import ro.dexblog.demo.repository.ProductRepository;

@RestController
@RequestMapping("/api/v1/products")
public class ProductController {

    private final ProductRepository productRepository;

    public ProductController(ProductRepository productRepository) {
        this.productRepository = productRepository;
    }

    @GetMapping
    public Page getProducts(
        @RequestParam(defaultValue = "0") int page,
        @RequestParam(defaultValue = "10") int size,
        @RequestParam(defaultValue = "price") String sortBy
    ) {
        Pageable pageable = PageRequest.of(page, size, Sort.by(sortBy).descending());
        return productRepository.findAll(pageable);
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: Paginare și Sortare cu Pageable și Page<T>

Ai o nelămurire despre utilizarea comenzii Paginare și Sortare cu Pageable și Page<T> sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.