Java, Spring/스프링부트와 JPA 활용 2
2022. 9. 9.
4-3. 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화
join fetch 1,2 번째 줄은 XToOne 이므로 데이터뻥튀기 될 가능성이 없다. 하지만 join fetch 3,4번째 줄은 XToMany 이므로 조회되는 데이터 뻥튀기 될 가능성이 있다. (컬렉션 LAZY 조회) join은 1,2 가 조인하면 2개가 된다. ㄴorder 2개, orderitem 4개 조인하면 order가 4개가 된다. 이 이미지를 보면 orderitem에서 FK인 order_id로 join하였는데 RDB에서는 맨 밑처럼 두 줄로 표현 될 수 밖에 없다. (order 2개, orderitem 4개면 결과적으로 4개를 끌어와야함.) -> 이렇게 되면 문제 : JPA에서 order를 가져올 때 데이터가 두배가 되어버린다. 진짜 order 1,1,2,2 총 4개가 나온다. 쿼리를 그대로..