[Spring boot] JPA - JPA의 연관관계

  • JPA에서 테이블 구조에서 다중성을 지원한다. JPA는 이걸 객체로 지원하기 위해 객체 연관관계를 지원해준다 이 객체 연관관계를 어떻게 잘 매핑하는 가를 한 번 공부해보려고 한다.

 

단방향 연관관계

  • DB에서는 양방향이 전부 가능하지만 객체는 오로지 단방향으로만 가능하다.
  • 객체에서 두 개의 객체를 서로 참조한다라는 것은 양방향으로 볼 수 있지만 서로 다른 단방향 관계 2개를 설정해주는 것이다.
    • Table → Join
    • 객체 연관관계는 → 참조(주소)

Member

@Entity
public class Member {
    @Id
    @Column(name = "MEMBER_ID")
    private String id;
    
    private String username;
    
    //연관관계 매핑
    @ManyToOne
    @JoinColumn(name = "TEAM_ID")
    private Team team;
    
    public void setTeam(Team team){
        this.team = team;
    }
}

 

@Entity
public class Team {
    @Id
    @Column(name = "TEAM_ID")
    private String id;

    private String name;
}
  • 객체 연관관계 → 회원 객체의 Member.team 필드 사용
  • 테이블 연관관계 → 회원 테이블의 MEMBER.TEAM_ID 외래키 컬럼을 사용

https://github.com/whitecy01/codyssey/tree/main/springAndJPA/relationshipJPA/relationshipJPA/src/main/java/org/example

 

codyssey/springAndJPA/relationshipJPA/relationshipJPA/src/main/java/org/example at main · whitecy01/codyssey

나만의 백엔드 세계를 탐험하는 여정 기초부터 실전까지 한 걸음씩 쌓아가는 개발자의 기록. Contribute to whitecy01/codyssey development by creating an account on GitHub.

github.com