2017-06-15 50 views
0

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

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

回答

2

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

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

查看Page的执行情况作为参考here

+0

我应该只提到文档.....谢谢 – Grim