Skip to content

Latest commit

 

History

History
28 lines (18 loc) · 1.68 KB

RelationalMapping.md

File metadata and controls

28 lines (18 loc) · 1.68 KB

[자바 ORM 표준 JPA 프로그래밍] 연관관계 매핑 - 기초

목표 : 객체의 참조와 테이블의 외래 키를 매핑하기

엔티티들은 대부분 다른 엔티티와 연관관계가 있다. 하지만 객체는 참조(주소)를 통해 관계를 맺고, 테이블은 외래 키를 사용하여 관계를 맺는다. ORM에서 가장 어려운 부분이 바로 객체 연관관계와 테이블 연관관계를 매핑하는 일이다.

방향

단방향

객체 중 한 쪽만 참조하는 것

양방향

객체 양 쪽 모두 서로 참조하는 뺄

방향은 객체에서만 존재하며, 테이블 관계는 항상 양방향이다.

다중성

회원과 팀이 관계가 있을 때 여러 회원은 한 팀에 속할 수 있으므로 다대일 관계이고, 반대로 한 팀에 여러 회원이 소속될 수 있으므로 팀과 회원은 일대다 관계이다.

연관 관계의 주인

객체를 양방향으로 생성할 때, 연관관계의 주인을 정해야 한다.

단방향 연관관계

참조를 통한 연관관계는 언제나 단방향이다. 객체간에 연관관계를 양방향으로 만들고 싶으면 반대쪽에도 필드를 추가해서 참조를 보관해야한다. 결국 연관관계를 하나 더 만들어야 하는데, 이렇게 양 쪽에서 서로 참조하는 것을 양방향 연관관계라고 한다. 엄밀하게 말하자면 양방향 관계가 아니라, 서로 다른 단방향 관계 2개라고 보는 것이 맞다.

객체 관계 매핑

@ManyToOne

이름 그대로 다대일 관계라는 매핑 정보이다. 연관 관계를 매핑할 때 이렇게 다중성을 나타내는 어노테이션을 필수로 사용해야 한다.