Spring PagingAndSortingRepository返回所有结果而不是所需的页面大小

时间:2017-06-15 16:48:05

标签: spring spring-data-jpa

我正在使用Spring Data JPA,我有一个扩展PagingAndSortingRepository的存储库。我的问题是我有一个查询,其中返回所有结果而不是所需的页面大小(100)。我似乎无法找到一个错误的问题。有人可以帮忙吗?

@Test
public void testFindPageByStartAndEndDate() {
    Timestamp endDate = Timestamp.valueOf("2017-06-14 09:18:42");
    Timestamp startDate = Timestamp.valueOf("2017-05-19 01:31:23");

    PageRequest pageRequest1 = new PageRequest(0, 100, Sort.Direction.ASC, "orderDate");
    Page<Order> page1Orders = orderRepository.findPageByStartAndEndDate(startDate, endDate, pageRequest1);

    assertThat(page1Orders.getTotalElements(), greaterThan(0L));
    //
    //
    // Test Fails Here
    //     Expected: a value less than <101L>
    //          but: <139L> was greater than <101L>
    // 
    //
    assertThat(page1Orders.getTotalElements(), lessThan(101L)); 
}

这是我正在使用的查询。

@Query("SELECT o FROM Order o  WHERE o.orderDate >= ?1 AND o.orderDate <= ?2")
Page<Order> findPageByStartAndEndDate(@Param("startDate") Timestamp startDate,
                                      @Param("endDate") Timestamp endDate,
                                      Pageable pageable);

1 个答案:

答案 0 :(得分:2)

getTotalElements()会返回没有分页的计数。

您可以使用getNumberOfElements()获得切片中存在的元素数量。

Page的实施视为参考here