연관 관계 매핑

박세건·2023년 3월 25일
0

연관관계란?

어떠한 한 사람이 있으면, 한 사람은 여러개의 글을 작성할 수 있다, 라고할때
한 사람의 엔티티는 여러개의 게시글의 엔티티를 갖을 수 있다.
이러한 관계를 연관관계 매핑 이라고 한다.
JPA에서는 연관 관계에 있는 상대 테이블의 PK를 멤버 변수로 갖지 않고,
엔티티 '자체'를 통째로 참조한다.
맵핑을 이해하기 위해서는 3가지 키워드를 알아야한다.

1. 방향

단방향 관계와 양방향 관계가 있다.
두 엔티티가 관계를 맺을때, 한 쪽의 엔티티만 참조하고있다면 단방향,
양 쪽이 서로 참조하고있다면 양방향 관계가 된다.

2. 다중성

ManyToOne : 다대일 ( N : 1 )
OneToMany : 일대다 ( 1 : N )
OneToOne : 일대일 ( 1 : 1 )
ManyToMany : 다대다 ( N : N )
위에서 설명한 한사람이 여러개의 게시글을 갖을 수 있는것은 한사람의 입장에서는 일대다관계다.

3. 연관관계의 주인

객체를 양방향 연관관계로 만들면 연관관계의 주인을 정해야 합니다.
연관관계를 갖는 두 테이블에서 외래키를 갖게되는 테이블이 연관관계의 주인이 됩니다.
연관관계의 주인만이 외래 키를 관리(등록, 수정, 삭제) 할 수 있고, 주인이 아닌 엔티티는 읽기만 할 수 있습니다.

profile
멋있는 사람 - 일단 하자

0개의 댓글