hoondev

[Spring JPA] 다대일 관계 본문

Spring JPA

[Spring JPA] 다대일 관계

hoondev3 2023. 1. 26. 18:42

다대일 관계

단방향

Member 

@Entity
public class Member { 
 
 @Id @GeneratedValue
 private Long id;
 
 @Column(name = "USERNAME")
 private String name;
 
 @ManyToOne
 @JoinColumn(name = "TEAM_ID")
 private Team team;
 … 
}

Team

@Entity
public class Team {

 @Id @GeneratedValue
 private Long id;
 
 private String name; 
 … 
}

다대일 단방향 관계에서는 member는 team을 참조할 수 있지만 team은 member를 참조할 수 없다.

외래키는 다 쪽인 member에 있다.

 

양방향

Member 

@Entity
public class Member { 
 
 @Id @GeneratedValue
 private Long id;
 
 @Column(name = "USERNAME")
 private String name;
 
 @ManyToOne
 @JoinColumn(name = "TEAM_ID")
 private Team team;
 … 
}

Team

@Entity
public class Team {

 @Id @GeneratedValue
 private Long id;
 
 private String name; 
 
 @OneToMany(mappedBy = "team")
 List<Member> members = new ArrayList<Member>();
 … 
}

양방향 관계에서는 두 객체모두 서로를 참조할 수 있다.

양방향은 외래키가 있는 쪽이 연관관계의 주인이다.

두 객체 모두 값을 넣어줘야 하기 때문에 연관관계 편의 메서드를 생성해서 사용하자.

 

Reference

https://www.inflearn.com/course/ORM-JPA-Basic

'Spring JPA' 카테고리의 다른 글

[Spring JPA] 일대일 관계  (0) 2023.01.28
[Spring JPA] 일대다 관계  (0) 2023.01.27
[Spring JPA] 양방향 연관관계  (0) 2023.01.25
[Spring JPA] 단방향 연관관계  (0) 2023.01.23
[Spring JPA] 기본 키 매핑  (0) 2023.01.22
Comments