Sayfalama ve Sorting yapabilmek için öncelike interface'de bulunan Repository'imizi "PagingAndSortingRepository"'den extends etmemiz gerekiyor.


ParticularRepository.java

public interface ParticularRepository extends PagingAndSortingRepository<Supplier, Long>{
 
}

ParticularController.java

@Controller
public class ParticularController {
    
    @Autowired
    private ParticularRepository particularRepository;
    
    @GetMapping("/particular/page")
    @ResponseBody
    public String findPageSuppliers(){
        Pageable pageable= PageRequest.of(0, 4);// 1.sayfada 4 tane olsun; 0'dan başlanır sayfa sayısı
        Iterable<Supplier> supplierList = particularRepository.findAll(pageable);
        Iterator<Supplier> iterator = supplierList.iterator();
        
        while(iterator.hasNext()){
            System.out.println(iterator.next().getSupplierName());
        }
        return "Sayfalandı";
    }
    
    @GetMapping("/particular/sort")
    @ResponseBody
    public String findSortedSuppliers(){
        Sort sort = Sort.by("supplierName").descending();
        Iterable<Supplier> supplierList = particularRepository.findAll(sort);
        Iterator<Supplier> iterator = supplierList.iterator();
        
        while(iterator.hasNext()){
            System.out.println(iterator.next().getSupplierName());
        }
        return "Sıralandı";
    }
    
    @GetMapping("/particular/pagesort")
    @ResponseBody
    public String findSortedPage(){
        Sort sort = Sort.by("supplierName").descending();
        Pageable pageable = PageRequest.of(0, 4,sort);
        Iterable<Supplier> supplierList = particularRepository.findAll(pageable);
        Iterator<Supplier> iterator = supplierList.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next().getSupplierName());
        }
        return "Hem sıralandı hem sayfalandı";
    }
}