jowoohyeong / TIGENSOFT

0 stars 0 forks source link

JPA @OneToOne, 일대일[1:1] 관계 #11

Open jowoohyeong opened 1 year ago

jowoohyeong commented 1 year ago

JPA @OneToOne, 일대일[1:1] 관계

일대일 [1:1]

일대일 - 주 테이블에 외래 키 단방향

13_one_to_one

일대일 - 주 테이블에 외래 키 양방향

다대일[N:1] 양방향 매핑처럼 외래키(FK)가 있는 곳이 연관관계의 주인이다.

  • JPA @OneToOne annotation으로 일대일 단방향 관계를 매핑하고, @JoinColumn을 넣어준다.
    • @JoinColumn은 Default 값이 있긴 하지만 지저분하게 들어간다. name을 정해주자.
      
      @Entity
      public class Member {
      ...
@OneToOne
@JoinColumn(name = "locker_id")
private Locker locker;

...

}

>   >- 여기까지만 매핑하면 단방향 관계이고, 반대편에 mappedBy를 적용시켜주면 일대일 양방향 관계 매핑이 된다.
```java
@Entity
public class Locker {
  ...

   @OneToOne(mappedBy = "locker")
   private Member member;
}
  • 이 member 필드는 읽기 전용 필드이다.

    일대일 - 대상 테이블에 외래 키 단방향

  • 일대일관계에서 대상 테이블에 외래 키를 저장하는 단방향 관계는 JPA에서 지원하지 않는다.

일대일 - 대상 테이블에 외래 키 양방향

정리

https://ict-nroo.tistory.com/126