JPA(3)

김성수·2022년 11월 29일
0

SEB_BE

목록 보기
17/31

JPA(3)

연관 관계 매핑

  • 연관 관계 매핑은 참조하는 방향성을 기준으로 단방향 연관 관계양방향 연관 관계로 구분할 수 있다.
  • 엔티티 간에 참조할 수 있는 객체의 수에 따라서 일대다(1:N), 다대일(N:1), 다대다(N:M), 일대일(1:1)의 연관 관계로 나눌 수 있다.

단방향 연관 관계

  • 한쪽 클래스만 다른 쪽 클래스의 참조 정보를 가지고 있는 관계

양방향 연관 관계

  • 양쪽 클래스가 서로의 참조 정보를 가지고 있는 관계

참고! JPA는 단방향 연관 관계와 양방향 연관 관계를 모두 지원하는 반면에 Spring Date JDBC는 단방향 연관 관계만 지원한다.

일대다 단반향 연관 관계

  • 일(1)에 해당하는 클래스가 다(N)에 해당하는 객체를 참조할 수 있는 관계를 의미

다대일 단방향 연관 관계

  • 다(N)에 해당하는 클래스가 일(1)에 해당하는 객체를 참조할 수 있는 관계
  • 다대일 단방향 매핑이 테이블 간의 관계처럼 자연스러운 매핑 방식이기 때문에 JPA의 엔티티 연관 관계 중에서 가장 기본적으로 사용되는 매핑 방식이다.

다대다 연관 관계

다(N)에 해당하는 클래스가 다(M)에 해당하는 객체를 참조할 수 있는 관계

  • JPA에서 다대다에 해당하는 엔티티 클래스 매핑 방법.
    • 다대일 매핑을 두번하고, 필요에 따라서 일대다 관계 매핑으로 양방향 매핑이 되게 하면 된다.

일대일 연관 관계

  • 다대일 단방향 연관 관계 매핑과 매핑방법 동일하다.
  • @OneToOne 애너테이션을 사용한다.

관련 애너테이션

@ManyToOne

  • 다(N)대일(1)관계를 명시한다.

@JoinColumn

  • 다대일 매핑에 사용한다.
  • name 애트리뷰트로 해당 테이블에서 외래키에 해당하는 컬럼명을 적어준다.
profile
쌩수 Git >> https://github.com/SsangSoo?tab=repositories

0개의 댓글