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

• 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의 결과를 특정 키를 기준으로 그룹화하는 것을 의미한다.

북마크
공유하기
신고하기