为什么Spring Data不允许页面大小为零?

时间:2016-03-30 15:43:08

标签: spring spring-mvc spring-data

我有以下情况。有一个典型的列表视图,带有无限滚动和带控制器的Spring MVC后端。返回列表项的方法具有 Pageable 类型的参数,以传递当前页面和页面大小。此参数委派给由相应的 PagingAndSortingRepository 定义的存储库方法,以便从数据库中检索结果。这将导致两个数据库查询:一个计数查询和一个查询以从给定页面获取结果。

这很好用,但是,我有另一个视图,它定义了一个导航到所描述的列表视图的按钮。此按钮显示徽章,其中列表中的总元素作为一种预览。为了计算我使用与列表本身相同的控制器和存储库方法的总元素,尽管我只需要计数。

我首次尝试实现此操作是将页面大小和页面都设置为零,以便在不获取任何元素的情况下计算结果,然后访问返回页面的 totalElements 属性。但是,Spring不允许页面大小== 0,并且在这种情况下将设置默认值(例如10)。

将size == 0情况作为单个计数查询实现以支持给定方案是否有意义?我在我的应用程序的几个部分中有这个用例,如果没有这个功能,我将不得不在我看来编写额外的不必要的计数方法。或者是否有其他方法可以实现我使用Spring Data描述的内容?

1 个答案:

答案 0 :(得分:0)

您只需使用count,无需通过Pageable

Long count();