对已排序的@Query查询进行分页可以通过使用Spring Data JPA提供的分页功能来实现。以下是一个示例:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
@Query("SELECT u FROM User u ORDER BY u.name")
Page<User> findAllSortedByName(Pageable pageable);
}
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public Page<User> getUsersSortedByName(int pageNo, int pageSize) {
Pageable pageable = PageRequest.of(pageNo, pageSize, Sort.by("name"));
return userRepository.findAllSortedByName(pageable);
}
}
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users")
public ResponseEntity<Page<User>> getUsers(@RequestParam(defaultValue = "0") int pageNo,
@RequestParam(defaultValue = "10") int pageSize) {
Page<User> users = userService.getUsersSortedByName(pageNo, pageSize);
return ResponseEntity.ok(users);
}
}
这样,当你发送GET请求到/users
接口时,可以通过pageNo
和pageSize
参数来指定页码和每页数量,返回的结果将会是按照名称排序的用户列表的分页结果。
对于腾讯云相关产品和产品介绍链接地址,可以根据具体需求和场景选择适合的产品,例如云服务器、云数据库、云存储等。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云