• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

querydsl Projection 성능 문제

23.12.23 21:00 작성 조회수 299

0

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

 

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

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

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

 

답변 2

·

답변을 작성해보세요.

2

안녕하세요. mincoding님

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

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

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

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

감사합니다.

mincoding님의 프로필

mincoding

질문자

2023.12.24

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

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.12.23

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

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

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

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