일대다 조인 관련해서 질문 드립니다
295
작성한 질문수 1
안녕하세요 강의 잘 듣고 있습니다.
일대다 관계 조인에서 현업에서는 어떤 식으로 풀어가시는지 궁금해서 질문드립니다.
JPA 기본 강의에서 도메인 설계 시 단방향 맵핑 만으로도 전부 설계 가능하고 필요 시에만 양방향 연관 관계를 설정한다고 하셨는데, 이 필요시가 구체적으로 어떤 경우인지가 궁금합니다.
만약 Order와 OrderItem에서 단방향으로 Order 엔티티에만 @ManyToOne 연관관계를 걸고 설계를 했다는 가정하에 Order와 OrderItem 정보 조회가 필요한 경우, 현업에서는 양방향 연관관계를 맺어서 해결하시는지 아니면 dto를 만들어서 in절 또는 fetch join후 스트림으로 뽑아내시는지 궁금합니다. 양방향 연관관계를 많이 사용하는지도 궁금합니다.
답변 1
0
안녕하세요. MoonHyuck Song님 좋은 질문입니다.
우선 OrderItem -> Order 방향으로만 다대일 단방향 관계로 걸려있다고 가정할께요.
ORM 설계에서는 다대일 단방향 관계로 설계가 끝납니다.
1. 보통 다대일, 일대다 양방향 관계가 필요한 경우는 일대다 방향으로 fetch join이 필요할 때 입니다.
fetch join이 성능상 매우 편리하기 때문에 현실적으로 이것 때문에 많이 사용됩니다.
2. 그래고 객체지향 설계에서 Order -> OrderItem으로 관계가 걸리는 것이 더 나은 경우에도 양방향 연관관계가 사용됩니다.
연관관계는 적을 수록 좋지만 말씀드린 이유들 때문에 추가를 어느정도 하는 편입니다.
설계라는 것이 정답이 있기 보다는 그때그때 상황에 더 나은 선택지가 있는 것이어서 딱 정답은 없는데, 앞서 말씀드린 1,2 두가지가 큰 영향을 줍니다.
감사합니다.
강의 관련 외 질문입니다.
0
65
2
SpringBoot4 + Hibernate7 모듈 등록 방법 공유
0
86
1
BeanCreationException
0
86
3
Update 후 UpdateMemberResponse 매핑할 때
0
46
1
트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?
0
98
2
페이징 + 검색조건 관련해서 질문드립니다.
0
70
1
Query Dsl Q파일 질문입니다.
0
81
1
루트 쿼리라는것은
0
58
1
메서드를 분리하는 기준
0
62
1
findAllWithMemberDelivery 메서드 질문드립니다.
0
108
3
연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략
0
83
2
fetch join과 영속화와 OSIV의 관계
0
84
2
Distinct 사용 전 결과에 대한 의문
0
113
2
레포지토리 계층에서의 트랜잭션에 대한 의문
0
55
1
영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.
0
78
2
dto 필드 속 엔티티 여부
0
58
1
뷰템플릿 사용 시
0
76
2
Result 클래스 관련 질문
0
56
1
@PostConstruct 프록시 관련 질문드립니다
0
85
1
DTO 대신 Form 사용은 안되나요?
0
133
1
OSIV ON 상태일 때
0
95
1
fetch join VS fetch join 페이징 궁금증
0
179
2
양방향 연관관계 알아보는 법?
0
104
1
16강 17강 간단 정리 이게 맞을까요 ?
0
165
2





