[자바 ORM 표준 JPA 프로그래밍 - 기본편] 6-1강
https://inf.run/2zDo 강의를 수강하고 작성하는 게시물입니다.
1. 연관관계 매핑시 고려사항 3가지
- 다중성
- 단방향, 양방향
- 연관관계의 주인
2. 다중성 종류
- 다대일 : @ManyToOne
- 일대다 : @OneToMany
- 일대일 : @OneToOne
- 다대다 : @ManyToMany
네가지 종류가 있는데 데이터베이스 중심으로 다중성을 가지면 된다.
애매할때는 반대쪽을 생각해보면 쉬울 수 있다. 대칭성이 있기 때문이다. 다대다는 실무에서는 대부분 쓰면 안된다.
3. 단방향과 양방향
테이블과 객체의 매핑
테이블
외래 키 하나로 양쪽 조인 가능하다. 사실 방향이라는 개념이 없다.
객체
참조용 필드가 있는 쪽으로만 참조 가능하다.
한쪽만 참조하면 단방향이고, 양쪽이 서로 참조하면 양방향이다.
연관관계의 주인
테이블은 외래키 하나로 두 테이블이 연관관계를 맺는다.
객체는 A->B, B->A로 참조가 2군데 있다. 그래서 외래키를 관리할 곳을 지정해줘야한다.
연관관계의 주인은 외래 키를 관리하는 참조이고
주인의 반대편은 외래키에 영향을 주지 않고 단순 조회만 가능하다.
4. 다대일 [N:1]
가장 많이 사용하는 연관관계이다.
단방향의 경우
다대일의 반대는 일대다이다.
양방향의 경우
테이블로 생각하면 외래키는 N:1중에 다(N)쪽에 존재해야한다.(연관관계의 주인) 1쪽에 외래키를 넣으면 여러개를 한 속성에 넣어야하기 때문이다.
객체는 양쪽을 서로 참조하도록 만들어준다.
댓글 남기기