[자바 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쪽에 외래키를 넣으면 여러개를 한 속성에 넣어야하기 때문이다.

객체는 양쪽을 서로 참조하도록 만들어준다.

댓글 남기기