首页  >  文章  >  Java  >  如何在 Spring Data JPA 中限制查询结果?

如何在 Spring Data JPA 中限制查询结果?

Barbara Streisand
Barbara Streisand原创
2024-10-28 08:21:02773浏览

How to Limit Query Results in Spring Data JPA?

Spring Data JPA 中 setMaxResults 的注解

在 1.7.0 之前的 Spring Data JPA 版本中,无法限制使用 setMaxResults 的带注释的查询方法返回的结果数。不过,此功能已在 Spring Data JPA 1.7.0 中引入。

Spring Data JPA 1.7.0 中的新功能

自 Spring Data JPA 1.7 起.0(Evans发布列车),可以使用新引入的Top和First关键字来定义自动限制结果的查询方法。例如:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Spring Data 会自动将结果限制为您定义的数量(如果省略,则默认为 1)。请注意,结果的排序在这里变得相关,可以通过示例中所示的 OrderBy 子句,也可以通过将 Sort 参数传递给方法。

以前版本中的分页

在 1.7.0 之前的 Spring Data JPA 版本中,分页是使用请求端的 Pageable 接口和结果端的 Page 抽象来处理的。这是一个示例:

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}

您可以像这样使用此界面:

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);

如果您需要有关结果的更多信息(例如它是哪一页或有多少页)总计),使用 Page 作为返回类型:

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}

这将触发要执行的查询的计数投影以确定元素的总数。

以上是如何在 Spring Data JPA 中限制查询结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn