使用Spring JPA加载更多功能

时间:2019-05-26 06:40:55

标签: java mysql spring-boot spring-data-jpa

我想在我的网站中启用“加载更多”功能。 由于我是使用Spring JPA从远程数据库中获取数据的,所以我想知道如何在Spring中实现这种功能?

基本上,我想做的是在第一次REST调用中仅加载100条记录。如果用户单击“加载更多”,那么我将对我停止的最后一个索引中的另外100条记录(意味着记录101-200)执行新的调用,依此类推。

如果需要,我可以通过HTTP POST发送开始和结束索引。这是我的资料库:

{{1}}

您有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用PageablePagingAndSortingRepository<T, ID>来满足您的要求。 通过扩展PagingAndSortingRepository,,我们可以得到用于分页和排序的f indAll(Pageable pageable)findAll(Sort sort)方法。

一旦我们的存储库从PagingAndSortingRepository扩展,我们只需要:

  1. 创建或获取PageRequest对象,该对象是 Pageable界面
  2. 将PageRequest对象作为参数传递给存储库方法 我们打算使用

示例:

public interface ProductRepository extends PagingAndSortingRepository<Product, Integer> {

    List<Product> findAllByPrice(double price, Pageable pageable);
}

Pageable firstPageWithTwoElements = PageRequest.of(0, 2);

Pageable secondPageWithFiveElements = PageRequest.of(1, 5);

Page<Product> allProducts = productRepository.findAll(firstPageWithTwoElements);

List<Product> allTenDollarProducts = 
  productRepository.findAllByPrice(10, secondPageWithFiveElements);

Paging and Sorting Doc Refer 1 Refer 2