강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

chinggin님의 프로필 이미지
chinggin

작성한 질문수

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 옵션을 통해 커서 페이지네이션 조회용으로 쓸 수 있을 것 같습니다..

예시니까 엔티티를 반환했고 레파지토리도 제외했습니다.

포스트맨을 활용하여 사용한 결과는 문제가 없었는데 이렇게 간단히 사용해도 될까요?

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
chinggin님의 프로필 이미지
chinggin

작성한 질문수

질문하기