Optimized-Collection-Inquiry
1 컬렉션 조회 최적화
- 지연로딩과 조회 성능 최적화
- 위 문서에서는 ToOne 관계에 대해서 조회 성능을 최적화 하는 방법을 알아봤습니다.
- 이번 글에서는 ToMany 관계에 대해서 조회 성능을 최적화 하는 방법을 알아보겠습니다.
1.1 예시 상황
Order
와 Member
일대일 관계입니다.
Order
와 Delivery
일대일 관계입니다.
Order
와 OrderItem
일대다 관계입니다.
OrderItem
과 Item
은 다대일 관계입니다.
- 연관 관계는 모두
fetch = FetchType.LAZY
로 설정되어 있습니다.
2 엔티티 조회
2.1 엔티티 직접 노출 버전
- 엔티티 직접 노출하는 버전을 구현해보겠습니다.
- 엔티티 직접 노출은 권장하는 방법이 아닙니다.
- 엔티티가 변하면 API 스펙이 변하는 문제가 발생합니다.
- 양방향 연관 관계가 있다면 JSON으로 변환하는 과정에서 문제가 발생합니다.
- 양방향 연관관계면 무한 루프에 걸리지 않게 한곳에 @JsonIgnore 를 추가해야 합니다.
2.1.1 예시