Avi
Avi

Reputation: 73

Converting List of objects into pages in spring

I am trying to get page with a number of items in each page. For some reason, this method returns the complete list instead of page of 5 items.

public Page<Item> searchPagedCategoryByName(@RequestParam String name) 
{
    Category category;
    category = categoryRepository.findCategoryByCategoryName(name);
    List<Item> items = category.getItems();

    Pageable pageable = PageRequest.of(0,5);
    Page<Item> page = new PageImpl<Item>(items, pageable, items.size());
    return page;
}

Upvotes: 2

Views: 5245

Answers (1)

Neeraj Jain
Neeraj Jain

Reputation: 7730

Create the repository extending PagingAndSortingRepository which provides perform pagination and sorting capability and then you can use like this,

Here is a code snippet from my practice workspace.

public interface CategoryRepository extends PagingAndSortingRepository< Category, Long> {
  List<Category> findCategoryByCategoryName(String categoryName, Pageable pageable);
}

@Bean
public CommandLineRunner pagingAndSortingRepositoryDemo(CategoryRepository repository) {
    return (args) -> {
        log.info("Category found with Paging Request PageRequest.of(page [zeroBased Page index], Size)");
        repository. findCategoryByCategoryName(name , PageRequest.of(0, 5)).forEach(category -> log.info(" :=> " + category));
    };
}

Upvotes: 1

Related Questions