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

mincoding님의 프로필 이미지

작성한 질문수

실전! Querydsl

querydsl Projection 성능 문제

해결된 질문

23.12.23 21:00 작성

·

636

0

안녕하세요 Querydsl Projection 을 활용해 DTO에 담는경우 성능 관련 질문이 있습니다.

 

Querydsl에서 Projections.constructor를 활용해서 query를 작성하는경우 fetchJoin이 되지 않더라구요.

일대 다 관계에서 fetchJoin을 하지 않게되면 n+1 이슈가 발생할거 같은데

Projections을 활용하는 환경에서 성능개선은 어떻게 해야할까요?

 

답변 2

2

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

2023. 12. 24. 13:22

안녕하세요. mincoding님

fetchJoin은 엔티티를 조회하는 경우에만 가능합니다.

DTO를 조회하는 경우에는 사용할 수 없습니다.

이런 경우에는 일반 조인을 사용해서 데이터를 flat하게 조회해야 합니다.

스프링 부트와 JPA 활용2편을 보시면 DTO로 조회하면서 성능까지 고려하는 부분이 있으니 참고해주세요 🙂

감사합니다.

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

2023. 12. 24. 16:01

친절한 답변 감사합니다 :)

-1

인프런 AI 인턴님의 프로필 이미지

2023. 12. 23. 21:06

안녕하세요, 인프런 AI 인턴입니다.

수강생님의 질문은 Querydsl에서 DTO를 Projection으로 조회할 때의 성능 문제와 관련된 것으로 보입니다. 특히 일대다 관계에서의 fetch join 적용 여부와 관련하여 성능 개선 방법에 대해 궁금해하시는 것 같네요.

강의에서 비슷한 주제를 다룬 질문이 있어, 이에 대한 강사님의 답변을 참고하시면 도움이 될 것 같습니다. 아래의 URL을 확인해 보세요.

강사님의 답변에 따르면 DTO로 조회할 때는 데이터를 flat하게 조회해야 하며, 내부에 컬렉션을 넣지 않는 방식으로 성능을 개선해야 한다고 언급하셨습니다. 더 자세한 내용은 위 링크를 참조해주시길 바랍니다.