연관관계 매핑 기초
목표
• 객체와 테이블 연관관계의 차이를 이해
• 객체의 참조와 테이블의 외래 키를 매핑 (테이블은 나와 연관된걸 찾을 때 외래키를 활용)
• 용어 이해
- 방향(Direction): 단방향, 양방향
- 다중성(Multiplicity): 다대일(N:1), 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해
- 연관관계의 주인(Owner): 객체 양방향 연관관계는 관리 주인 이 필요
목차
• 연관관계가 필요한 이유
• 단방향 연관관계
• 양방향 연관관계와 연관관계의 주인
• 실전 예제 - 2. 연관관계 매핑 시작
연관관계가 필요한 이유는?
- ‘객체지향 설계의 목표는 자율적인 객체들의 협력 공동체를 만드는 것이다. - 조영호(객체지향의 사실과 오해)
-> 객체 하나로 살아갈 수 있는 세상이 아니다. 객체는 연관관계가 걸려있어 다 활용을 하기 때문이다.
예제 시나리오
• 회원과 팀이 있다.
• 회원은 하나의 팀에만 소속될 수 있다.
• 회원과 팀은 다대일 관계다.
객체를 테이블에 맞추어 모델링(연관관계가 없는 객체)
객체를 테이블에 맞추어 모델링( 참조 대신에 외래 키를 그대로 사용 )
객체를 테이블에 맞추어 모델링(외래키 식별자를 직접 다룸)
객체를 테이블에 맞추어 모델링 (식별자로 다시 조회, 객체 지향적인 방법은 아니다.)
객체를 테이블에 맞추어 데이터 중심으로 모델링하면, 협력 관계를 만들 수 없다
• 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다.
• 객체는 참조를 사용해서 연관된 객체를 찾는다.
• 테이블과 객체 사이에는 이런 큰 간격이 있다
참고 - 김영한님의 자바 ORM 표준 JPA프로그래밍 강의
'JPA' 카테고리의 다른 글
다양한 연관관계 매핑 - 다대일 / 일대다 (0) | 2021.08.06 |
---|---|
양방향 연관관계와 연관관계의 주인 (0) | 2021.08.05 |
엔티티 매핑 - 실전 예제 (0) | 2021.08.05 |
엔티티 매핑 - 객체와 테이블 매핑/ 데이터베이스 스키마 자동 생성/ 필드와 컬럼 매핑/ 기본 키 매핑 (0) | 2021.08.04 |
2-3. 준영속 상태 (0) | 2021.08.02 |