在春季将对象列表转换为页面

时间:2018-09-28 09:16:40

标签: java spring hibernate spring-data-jpa

我正在尝试获取一个页面,每个页面中包含许多项目。由于某种原因,此方法返回完整列表,而不是5个项目的页面。

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;
}

1 个答案:

答案 0 :(得分:0)

创建扩展 PagingAndSortingRepository 的存储库,该库提供执行分页和排序功能,然后您可以像这样使用

这是我的练习工作区中的代码段。

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));
    };
}