Sorting orders repository query results by one or more attributes. Spring Data query methods express ordering in their names, while Sort and PageRequest supply runtime criteria for limited results and pages. section 15.2.2 section 17.3.2
Use these repository patterns to combine ordering with result limits or pagination:
- Use findFirstByOrderByUsernameAsc() or findTopByOrderByRegistrationDateDesc() to retrieve one ordered result as Optional<User>. section 15.2.2
- Pass Sort to methods such as findFirst2ByLevel(int level, Sort sort) or findByLevel(int level, Sort sort). section 17.3.2
- Pass PageRequest through Pageable to specify page number, page size, and sorting criteria; return results as Page<User>. section 15.2.2
Repository sorting and paging
Optional<User> first = userRepository.findFirstByOrderByUsernameAsc(); Optional<User> newest = userRepository.findTopByOrderByRegistrationDateDesc(); Page<User> page = userRepository.findAll(PageRequest.of(1, 3)); List<User> users = userRepository.findFirst2ByLevel(2, Sort.by("registrationDate")); The first query orders by username ascending, the second by registration date descending, and the final queries combine limits or pages with a sort criterion.

















