inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

173만명의 커뮤니티!! 함께 토론해봐요.

나름의 페이징 처리를 만들어봤습니다

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 초보개발자 명아주입니다. 배치를 사용하지 않고, 직접 IN 쿼리를 만들어주게 한번 해봤습니다. 이렇게 하면 실제 쿼리가 2번 나가게 됩니다. 조금더 복잡하긴 하지만, jpa 를 잘 모르는 사람이 보기엔 이해하기 더 좋지 않을까 싶습니다. 단점은 2번째 쿼리가 좀 크게 나가는 점과 distinct 문제, 배치 사이즈의 한계같은 부분이 없다는 것이라고 생각합니다. public List<Order> findAllWithPaging(int offset, int limit) { List<Long> ids = em.createQuery("select o.id from Order o", Long.class) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); return em.createQuery(""" select distinct o from Order o join fetch o.member join fetch o.delivery join fetch o.orderItems oi join fetch oi.item where o.id in :ids """, Order.class) .setParameter("ids", ids) .getResultList(); }

  • jpa
  • paging
명아주 댓글 1 좋아요 0 조회수 540

인기 태그

인프런 TOP Writers

주간 인기글