【问题标题】:Spring PagingAndSortingRepository returns all results instead of desired page sizeSpring PagingAndSortingRepository 返回所有结果而不是所需的页面大小
【发布时间】:2017-06-16 00:56:26
【问题描述】:

我正在使用 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);

【问题讨论】:

    标签: spring spring-data-jpa


    【解决方案1】:

    getTotalElements() 不分页返回计数。

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

    请参阅Page 的实现作为参考here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2016-03-26
      • 2015-03-25
      • 1970-01-01
      相关资源
      最近更新 更多