JPA - 양방향 연관관계

임형종·2024년 1월 21일
0

스프링부트

목록 보기
13/28

  • mappedBy : 수정을 어디에서 할 것인가를 명시하는것과 동시 FK 를 어디에 가질것인지를 명시하는것
  • @OneToMany : 일대다, 회원 한 명이 게시글을 여러 개 작성할 수 있으므로 회원(Member) 기준으로 @OneToMany를 선언합니다.

즉 mappedBy를 통해 상대 FK를 정해서 oneToMany를 통해 상대 FK의 entity를 정해주며
상대 entity는 oneToMany를 통해 FK로 모든 데이터를 끌고온다.

  • @ManyToOne : 다대일, 한 명의 회원이 여러 게시글을 작성할 수 있으므로 게시글(Article) 기준으로 @ManyToOne을 선언합니다.
  • @JoinColumn은 다'쪽 엔티티에서는 @JoinColumn 어노테이션을 설정
  • referencedColumnName 외래 키가 참조하는 대상 테이블의 컬럼명을 지정해 준다.
    ,Default 기본값은 참조하는 테이블의 기본키(PK) 컬럼명
    (referencedColumnName을 사용하지 않는 이유는 바로 referencedColumnName을 생략하면 대상 테이블의 PK로 자동 지정)

즉 ManyToOne을 통해 여러개를 가져올수 있는 곳을 정해주는곳으로

  • 조인을 하려면 FK가 조인할 대상 테이블의 컬럼이 있어야 하는데
    이게 바로 referencedColumnName입니다.
  • 즉 사진에서 보았듯이 이 사진은 pk를 기준으로 join하는데 pk를 조인하면 안되기때문에
    referencedColumnName으로 막아준다.
profile
제로부터시작하는개발생활

0개의 댓글

관련 채용 정보