//order, orderitem, item 다 조인해서 한번에 가져오는 것
orderItems 조인하는 과정에서 oi 개수만큼 데이터 뻥튀기 된다. (앞에서 한 내용.)
당연히 이렇게 4row가 조회된다.
일대다 조인했기 때문에 다 쪽 개수에 맞춰짐(조인의 속성 (일쪽이 다쪽에 개수 맞춰짐(중복으로 생성됨.).)).
V6의 장점 : 단 한번 쿼리로 된다. ->
order를 기준으로 페이징 불가능, oi를 기준으로 페이징 가능 (앞에서랑 똑같음.)
하지만 이 때 반환 타입을 OrderQueryDto로 맞추고싶다. OrderFlatDto를 ORderQueryDto로 맞추자.
-> 어떻게든 발라내자.
훑어만 보자. 메모리에서 돌림.
장점 : 쿼리 1번
중복판단기준을 orderId로 정해준다.
페이징 안되는 이유 : 만약 데이터 3개 가져와라 ->
여기서 1,1,2 세 개를 가져온다. -> order 기준으로 페이징 안됨.
열이 지금 oi 기준이므로 oi기준으로는 페이징이 가능하다.
'Java, Spring > 스프링부트와 JPA 활용 2' 카테고리의 다른 글
5-1. OSIV와 성능 최적화 (1) | 2022.09.12 |
---|---|
4-8. 총정리(API 개발 고급 정리) (0) | 2022.09.12 |
4-6. 주문 조회 V5: JPA에서 DTO 직접 조회 - 컬렉션 조회 최적화 (0) | 2022.09.11 |
4-5. 주문 조회 V4: JPA에서 DTO 직접 조회 (1) | 2022.09.11 |
4-4. 주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파 (아주아주아주아주아주 중요) (2) | 2022.09.10 |