[JPA-기본편] 다양한 연관관계 매핑

둡둡·2023년 1월 31일
0

JPA-Basic

목록 보기
7/11

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

다중성

  • 다대일 : @ManyToOne
  • 일대다 : @OneToMany
  • 일대일 : @OneToOne
  • 다대다 : @ManyToMany

단방향, 역방향

  • 테이블
    • 외래 키 하나로 양쪽 조인 가능
    • 방향이라는 개념이 특별히 없음
  • 객체
    • 참조용 필드가 있는 쪽으로만 참조 가능
    • 한쪽만 참조하면 단방향
    • 양쪽이 서로 참조하면 양방향

연관관계의 주인

  • 객체 양방향 관계에서 외래 키를 관리하는 참조 설정
  • 반대편은 외래 키에 영향을 주지 않고, 조회만 가능

다대일 [N:1]

  • 다대일 단방향 : 가장 많이 사용하는 연관관계
  • 다대일 양방향 : 외래 키가 있는 쪽이 연관관계의 주인

일대다 [1:N]

  • 일대다 단방향 : 일(1)이 연관관계의 주인
    • 다른 테이블인 다(N)에 외래 키가 존재하여, UPDATE SQL 실행
    • @JoinColumn 필수 (사용하지 않으면 조인 테이블 방식으로 사용됨)
  • 일대다 양방향 : 읽기 전용 필드를 통해 양방향처럼 사용
    • 공식적으로 존재하지 않음, 사용 권장X

일대일 [1:1]

  • 다대일 매핑과 유사함
  • 주 테이블에 외래 키
  • 대상 테이블에 외래 키

다대다 [N:M]

  • 관계형 데이터베이스는 연결 테이블을 추가하여 일대다, 다대일 관계로 가능
  • 객체는 컬렉션을 사용하여 다대다 관계 가능
  • @ManyToMany, @JoinTable
  • 실무에서 거의 사용하지 않음

자바 ORM 표준 JPA 프로그래밍 - 김영한, 인프런

profile
괴발개발라이프

0개의 댓글