Pagination in Spring-Data-JPA
Question:
In Spring-Data-JPA, how can pagination be achieved with annotations?
Answer:
As of Spring Data JPA 1.7.0:
The Top and First keywords allow for pagination in query methods:
<code class="java">findTop10ByLastnameOrderByFirstnameAsc(String lastname);</code>
Spring Data will limit results accordingly.
For Previous Versions:
Pagination is done using the Pageable interface and the Page abstraction:
<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>
If context information is needed, use Page as the return type:
<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>
Using Page requires triggering a count projection query to calculate metadata. Ensure PageRequest contains sorting information to get stable results.
The above is the detailed content of How Can I Implement Pagination in Spring Data JPA Using Annotations?. For more information, please follow other related articles on the PHP Chinese website!