TIL

+32 Entity 연관관계 1 대 1 관계

JAVABOZA 2023. 7. 18. 03:30
더보기

@OneToOne

:: 1 대 1 관계를 맺어주는 역할

 

 

단방향 관계

  • 먼저 외래키 (FK)를 정해야 한다

1 대 1 관계에서는 외래 키의 주인을 직접 정해야함

 

※ 외래 키 주인만이 외래 키를 등록, 수정 , 삭제 할 수 있으며 주인이 아닌 쪽은 오직 외래키를 읽기만 가능

 

 

@JoinColumn() 
:: 외래키의 주인이 활용하는 애너테이션
 ex) 컬럼명, null여부, unique 여부 등 지정 가능

고객 Entity가 외래 키의 주인인 경우 (단방향)


양방향 관계

  • 양방향 관계에서는 외래 키의 주인을 지정해 줄때 mappedBy 옵션을 사용
  • mappedBy의 속성값은 외래 키의 주인인 상대 Entity 필드명을 의미
  • 양방향에서는 외래 키의 주인은 상대 Entity 타입의 필드를 가지면서 @JoinColumn()을 활용해서
    외래키의 속성을 설정
  • 여기서 상대 entity는 외래키의 주인 entity 타입의 필드를 가지면서 mappedBy옵션을 사용하여 속성값으로
    외래키의 주인 entity에 선언된 @JoinColoumn()으로 설정되고 있는 필드명을 넣어준다.
  • 양방향 관계에서는 mappedBy옵션을 생략하면 안됨 (이유 : JPA가 주인을 못찾음)
  • ※ 주인entity 에서는 @JoinColumn() 에너테이션 생략이 가능
    ㄴ 1 대 N관계에서 주인 entity가 @JoinColumn 생략하게 되면 중간 테이블을 생성함



 

'TIL' 카테고리의 다른 글

+34 Spring N 대 M관계  (0) 2023.07.22
+33 Spring 1대N 연관관계  (0) 2023.07.20
+31 Entity 연관 관계  (0) 2023.07.17
+30 Naver Open API  (0) 2023.07.17
+29 RestTemplate의 exchange  (0) 2023.07.14