SpringBoot整合JPA的分页查询可以通过使用Spring Data JPA提供的Pageable
接口来实现。首先,需要在Repository接口中定义一个方法,方法的返回类型为Page
,其中T
为查询的实体类,方法的参数中可以传入一个Pageable
对象来指定分页的参数,例如:
import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository{ Page findAll(Pageable pageable); }
然后在Service层中调用Repository中定义的方法,并传入一个PageRequest
对象来指定分页的参数,例如:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; @Service public class UserService { @Autowired private UserRepository userRepository; public PagegetUsers(int page, int size) { PageRequest pageable = PageRequest.of(page, size); return userRepository.findAll(pageable); } }
最后,在Controller层中调用Service中定义的方法并返回分页查询的结果,例如:
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserService userService; @GetMapping("/users") public PagegetUsers(@RequestParam(defaultValue = "https://www.yisu.com/ask/0") int page, @RequestParam(defaultValue = "https://www.yisu.com/ask/10") int size) { return userService.getUsers(page, size); } }
通过以上步骤,就可以实现SpringBoot整合JPA的分页查询功能。在前端调用接口时,可以传入page
和size
参数来控制分页查询的页数和每页数据量。