logo

Querydsl 에서 OneToMany 관계에서 Left Outer Join 이 필요할 경우

language-logoJava

• JPA와 Querydsl을 사용하여 OneToMany 관계에서 Left Join이 필요한 경우, 기본적으로 OneToMany에서는 Inner Join이 사용되므로, Parent Entity를 조회하더라도 Child Entity가 없는 경우 문제가 발생할 수 있다.
• 이를 해결하기 위해 Parent를 조회하면서 Child는 Left Outer Join을 사용해야 하는데, 이를 위해 Querydsl의 Projections.fields를 사용하여 Family DTO를 생성하고, 이를 통해 Child가 없어도 Parent가 있는 경우에도 Family DTO를 생성할 수 있다.
• 위 코드는 Parent와 Child의 관계를 Left Outer Join으로 조회하고, 그 결과를 Family 객체로 생성하는 방법을 설명하고 있다. 이때, Parent Entity를 직접 조회하거나 Querydsl에서 제공하는 Result Aggregation을 사용하여 결과를 그룹화하는 두 가지 방법을 제시하고 있다.
• 첫 번째 방법은 Parent Entity를 직접 조회하되, Child는 Left Outer Join을 사용하고, 조회된 결과로 Family를 생성하는 것이다. 두 번째 방법은 Querydsl의 Result Aggregation 기능을 사용하여 결과를 특정 키를 기준으로 그룹화하는 것이다. 이때, Aggregation은 Querydsl의 결과를 특정 키를 기준으로 그룹화하는 것을 의미한다.

thumbnail
북마크
공유하기
신고하기
5분 분량
조회수 376
profile-image향로
2년 전
Copyright © 2025. Codenary All Rights Reserved.