인프런 커뮤니티 질문&답변
JPQL Cursor Pagination
작성
·
409
0
JPQL을 활용한 커서 페이지네이션 관련해서 질문드릴려고 합니다.
@GetMapping("/items")
@ResponseBody
public List<Item> findAllItemOrderByItemOrderASC(@RequestParam(value = "order", defaultValue = "0") Long itemOrder, @RequestParam(value = "size", defaultValue = "2") Integer size) {
String jpql = "select i from Book i where i.id > :itemOrder order by i.id";
return em.createQuery(jpql, Item.class)
.setParameter("itemOrder", itemOrder)
.setMaxResults(size)
.getResultList();
}
클라이언트에서 마지막 커서 값으로 itemOrder를 준다는 가정하에 이 코드는 문제가 없을까요?
setMaxResults가 쿼리가 얻을 수 있는 결과를 제한하는 역할을 하길래 QueryDSL 말고도 JPQL을 통해 쉽게 커서 페이지네이션이 구현 가능할까해서 질문드립니다.
일대다 같은 경우는 물론 적용하지 못하겠지만 batchSize 옵션을 통해 커서 페이지네이션 조회용으로 쓸 수 있을 것 같습니다..
예시니까 엔티티를 반환했고 레파지토리도 제외했습니다.
포스트맨을 활용하여 사용한 결과는 문제가 없었는데 이렇게 간단히 사용해도 될까요?
답변
답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!




