- 1 前言
- 2 项目元数据
- 3 使用条件
- 4 玩转Spring Data Repositories
- 4.1 核心概念
- 4.2 查询方法
- 4.3 repository接口定义
- 4.3.1 调整repository定义
- 4.4 定义查询方法
- 4.4.1 查询策略
- 4.4.2 创建查询
- 4.4.3 属性表达式
- 4.4.4 处理特殊参数
- 4.4.5 限定查询结果集大小
- 4.4.6 Stream处理查询结果
- 4.4.7 异步处理查询结果
- 4.5 创建repository实例
- 4.5.1 XML配置
- 4.5.2 JavaConfig
- 4.5.3 独立使用
- 4.6 自定义repository实现
- 4.6.1 为单一的repositories添加自定义方法
- 4.6.2 为所有的repositories添加自定义方法
- 4.7 扩展Spring Data
- 4.7.1 WEB支持
- 4.7.2 Repository填充
- 5 Elasticsearch Repositories
- 5.1.1 Spring命名空间
- 5.1.2 基于注解的配置
- 5.1.3 使用CDI
- 5.2.1 查询策略
- 5.2.2 创建查询
- 5.2.3 使用@Query注解
- 5.3 其他Elasticsearch操作的支持
- 5.3.1 构建Filter
- 5.3.2 利用Scan和Scroll处理大结果集
- 6.1 附录A 命名空间参考文档
- 6.2 附录B Populators命名空间参考文档
- 6.3 附录C Repository查询关键字
- 6.4 附录D Repository查询返回类型
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.4.5 限定查询结果集大小
Spring Data允许开发者使用first和top关键字对返回的查询结果集大小进行限定。fisrt和top需要跟着一个代表返回的结果集的最大大小的数字。如果没有跟着一个数字,那么返回的结果集大小默认为1。
Example 8.Limiting the result size of query with Top and First(利用first和top限制返回的结果集大小)
User findFirstByOrderByLastnameAsc();
User findTopByOrderByAgeDesc();
Page<User> queryFirst10ByLastname(String lastname, Pageable pageable);
Slice<User> findTop3ByLastname(String lastname, Pageable pageable);
List<User> findFirst10ByLastname(String lastname, Sort sort);
List<User> findTop10ByLastname(String lastname, Pageable pageable);
限制结果集的表达式还支持Distinct关键字。并且,当返回的结果集大小限制为1时,Spring Data支持将返回结果包装到Optional(java 8新增,这是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象)之中,例子如下:
Optional<User> findFirstByOrderByLastnameAsc();
在查询用page和slice来进行分页查询的情况下,同样可以使用first和top来对结果集大小进行限制。
注意,如果在使用Sort参数对查询结果进行排序的基础上加上对结果集大小的限制,就可以轻易的获得最大的K个元素或最小的K个元素。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
![扫码二维码加入Web技术交流群](/public/img/jiaqun_03.jpg)
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论