使用Spring限制查找所有可能吗?

yog*_*ger 12 spring spring-data

使用Springs自动实现的存储库是否可以限制findAll方法的结果大小?

我正在尝试在界面中声明以下内容:

List<XY> findAllTopTen();
Run Code Online (Sandbox Code Playgroud)

不幸的是,它不起作用(这)方式......

dub*_*nzi 17

如果您没有Pageable来自控制器的对象,只需要从DB获取X对象,您可以执行以下操作:

首先,您的Repository类必须扩展,JpaRepository<T, ID>以便能够使用Pageable对象进行查询.

其次,您可以通过以下方式定义Pageable对象:

Pageable limit = PageRequest.of(0,10);
return repository.findall(limit);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,查询将返回前10个对象.

您可以在此处找到更多信息(向下滚动到4.1,示例4)请注意,示例实际上已扩展PagingAndSortingRepositoryJpaRepository包含所有方法,PagingAndSortingRepository并且还具有其他功能.

编辑:感谢@Zunnii指出new PageRequest()现在已弃用.我编辑了上面的代码片段来反映这一点.

  • 截至目前,PageRequest 已被弃用,因此您可以使用“PageRequest.of(0, 10)”代替。 (2认同)

Ali*_*ani 11

将a Pageable作为参数传递如下:

Page<x> findAll(Pageable pageable);