Spring-Data-JPA 中的分页
问题:
在 Spring-Data- JPA,如何通过注解实现分页?
答案:
从 Spring Data JPA 1.7.0 开始:
Top 和 First 关键字允许在查询方法中进行分页:
<code class="java">findTop10ByLastnameOrderByFirstnameAsc(String lastname);</code>
Spring Data 将相应地限制结果。
对于以前的版本:
使用Pageable接口和Page抽象完成分页:
<code class="java">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);</code>
如果需要上下文信息,请使用Page作为返回类型:
<code class="java">public interface UserRepository extends Repository<User, Long> { Page<User> findByUsername(String username, Pageable pageable); } Pageable topTen = new PageRequest(0, 10); Page<User> result = repository.findByUsername("Matthews", topTen);</code>
使用Page需要触发计数投影查询来计算元数据。确保PageRequest包含排序信息以获得稳定的结果。
以上是如何在 Spring Data JPA 中使用注解实现分页?的详细内容。更多信息请关注PHP中文网其他相关文章!