提问者:小点点

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


我有以下场景。有一个典型的具有无限滚动的列表视图和一个带有控制器的SpringMVC后端。返回列表项的方法有一个类型为可分页的参数,用于传入当前页面和页面大小。该参数被委托给一个由相应的PagingAndSorting Repository定义的存储库方法,以便从数据库中检索结果。这将导致两个数据库查询:一个计数查询和一个从给定页面获取结果的查询。

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

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

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


共1个答案

匿名用户

您可以使用只需计数无需通过Pag可分页

长计数();