연관관계 질문 드려요.
223
작성한 질문수 75
영한님 안녕하세요.
실무에서 Master / Detail 의 일대다 관계 구조로 설계된 기능들이 꽤 있는데
화면에서 Master 를 먼저 등록 완료하고, 이후 등록된 Master 중 택일하여 Detail 을 등록하는 방식들입니다.
만약 이러한 구조에서 연관관계 맵핑을 하지 않고 Join 이 되는 외래키를
Detail 의 속성에 넣어 구현할 경우, 연관관계 맵핑 방식과 비교하여 단점이 클까요?
JPA 를 한번도 경험해보지 않은 팀원들이 개발을 해보려고 하니
연관관계 맵핑을 적용하는 것에 어려움이 있어 당장은 위 구조를 활용하려고 하네요.
저도 아직 영한님 강의만 듣고 있는 상태라 큰 도움이 못되고 있고요..
의견 좀 주시면 감사하겠습니다.
그리고 QueryDSL 내용이 강의에 전혀 포함되어 있지 않아 아쉬움이 크네요 ㅠ
답변 1
0
안녕하세요 아리마님
문의하신 외래키를 Detail의 속성에 넣어 구현할 경우를 다음과 같이 이해했습니다.
Detail {
Long masterId; -> 객체 대신에 외래키 값을 넣어서 사용
}
Master, Detail을 일대다 관계로 가져가는 경우는 매우 흔한 경우이지요^^
JPA를 사용하는 이유가 객체를 객체답게 설계하는 것인데, id를 사용하고, 데이터베이스 테이블 구조에 엔티티를 맞추어서 설계하는 방식으로 가면 얻는 이득이 많이 떨어집니다.
JPA를 사용하려면 결국 JPQL까지 가야하는데, 연관관계가 없으면 JPQL에서 큰 이득을 얻을 수 없습니다.
그리고 연관관계 매핑을 해야! 향후 fetch join 등을 사용해서 매우 편하게 성능 최적화를 할 수 있습니다.
그리고 저는 가급적 연관관계를 사용하는 것을 권장합니다.
개인적으로 활용편1 강의를 한번 들어보시길 권장합니다. 실무에서 이런 부분을 어떻게 처리하는지, 코드로 설명하고 있으니, 이해하시고, 팀분들에게도 설명해주실 수 있을 거에요.
감사합니다.
P.s: QueryDSL은 조만간 준비하겠습니다 ㅎㅎ
inheritance startegy 선택시 고려사항
0
1
0
Entity 동등성 비교
0
10
1
실무 조언 관련 질문입니다.
0
41
1
H2데이터베이스 파일 생성
0
51
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
49
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
48
1
JPQL 메소드와 락
0
52
1
Delivery @OneToOne
0
57
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
89
2
UnsupportedOperationException 발생
0
82
3
H2 Database 연결이 안됩니다.
0
89
2
연관관계 매핑 질문드립니다.
0
82
2
h2데이터베이스 실행오류
0
105
2
persistence.xml
0
103
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
77
1
영속성 컨텍스트
0
62
1
JPA 프록시
0
90
1
Native Query와 MyBatis
0
63
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
83
1
임베디드 타입 예시 코드 관련 질문
0
112
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
90
3
인텔리제이 패키지 커서 단축키 질문
0
106
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
136
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
68
1





