我有一个SpringBoot应用程序和一个从CrudRepository
@Query("select cps from HotelPriceSummary cps where cps.price > 5 and cps.profilePercentage >= 70 ")
List<HotelPriceSummary> findMine(Pageable pageable);
我想知道是否可以从对象Pageable
获取页面总数
答案 0 :(得分:2)
您可以使用返回总元素的Page<T>
接口。
长 -
getTotalElements()
返回元素总数。
在你的例子中,它应该是这样的:
@Query("select cps from HotelPriceSummary cps where cps.price > 5 and cps.profilePercentage >= 70 ")
Page<HotelPriceSummary> findMine(Pageable pageable);
答案 1 :(得分:1)
您应该从PagingAndSortingRepository
而不是CrudRepository
扩展您的存储库。然后方法查询应该是:
@Query("select cps from HotelPriceSummary cps where cps.price > 5 and cps.profilePercentage >= 70 ")
Page<HotelPriceSummary> findMine(Pageable pageable);
之后,您可以使用来自服务(或任何您想要的)的查询,然后在响应中使用getTotalPages()
。例如:
int page = 0, pageSize = 10;
Page<HostelPriceSummary> response = myRepo.findMine(PageRequest.of(page, pageSize));
int numberOfPages = response.getTotalPages();