연관관계 매핑시 고려사항 3가지

  1. 다중성

  2. 단방향, 양방향

  3. 연관관계의 주인

다중성 : DB랑 매핑하기 위함. DB관점에서 보면 된다. 애매하거나 헷갈리는 경우에는 반대의 경우를 생각해보면 된다!대칭성)❓:1 의 반대 = 1: 다 ➜ ❓ = 다

  • 다대일: @ManyToOne

  • 일대다: @OneToMany

  • 일대일: @OneToOne

  • 다대다: @ManyToMany (실무에서 쓰면 안됨!!!❌)

단방향, 양방향

테이블

  • 외래 키 하나로 양쪽 조인 가능

객체

  • 참조용 필드가 있는 쪽으로만 참조 가능

  • 한쪽만 참조 : 단방향

  • 양쪽 참조 : 양방향(개념적인 용어이고, 사실은 단방향이 2개가 있는 것이다.)

연관관계의 주인!이라는 개념 등장

테이블은 FK 하나로 두 테이블이 연관관계를 맺기 때문에 FK 하나만 조회하면 되지만 객체는 A->B, B->A 처럼 참조가 2개이므로 A B 둘 중 FK를 관리할 곳을 지정해야한다!

  • 연관관계의 주인: 외래 키를 관리하는 참조

  • 주인의 반대편: 외래 키에 영향을 주지 않음, 단순 조회만 가능

Last updated