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

spahqhdl님의 프로필 이미지
spahqhdl

작성한 질문수

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

default_batch_fetch_size 질문

해결된 질문

작성

·

133

0

안녕하세요 강의를 들으며, 토이 프로젝트에 jpa를 적용해보려하는데 문제가 생겨 질문을 드리게 되었습니다.

 

default_batch_fetch_size를 사용하게 되면 @OneToMany관계를 가질 때 미리 지정된 개수만큼 join을 해서 가져오는 것으로 이해를 했습니다.

여기서 페이징 처리를 하고 싶은데, default_batch_fetch_size를 이용해 얻은 값에서 원하는 값만 조회를 하고 싶습니다.

 

현재 문제는 user와 tag(사용자가 관심있는 태그), post가 있을 때,

user와 tag가 N:M 관계,

tag와 post가 N:M 관계를 갖습니다.

각각을 1:N, N:1로 나타내기 위해 연결 테이블을 만들었습니다.

 

PostRepository에서 user가 관심있는 태그에 해당하는 게시물을 페이징으로 가져오고 싶은데 default_batch_fetch_size를 이용하면 직접 접근이 불가능할 것 같은데 이런 경우에는 어떻게 해결할 수 있을까요?

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. spahqhdl님

이 문제는 일반적인 sql의 join을 사용해서 해결해야 합니다.
JPQL도 sql의 join을 지원합니다.

먼저 JPQL(SQL)을 어떻게 작성해야 할지 고민해보시면 도움이 되실거에요.

그리고 상황에 따라 JPQL(SQL)을 여러번 나누어 실행해야 할 수 도 있습니다.

감사합니다.

spahqhdl님의 프로필 이미지
spahqhdl
질문자

감사합니다. JPQL을 나누어 실행해서 가져오는 방법을 이용해 해결했습니다!

spahqhdl님의 프로필 이미지
spahqhdl

작성한 질문수

질문하기