2017-06-15 56 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