라이브러리는 도서관 아닌가요

양방향 연결 관계 mappedBy 속성 본문

Java/JPA

양방향 연결 관계 mappedBy 속성

veryhi 2022. 2. 8. 12:09

 

두 객체가 양방향 연결 관계일 때는 mappedBy 속성을 사용한다.

 

 

 

자주 쓰이는 다대일 양방향 매핑을 예로 들어보자.

 

먼저 다대일 관계는 다(多)에 외래키가 있다.

 

외래키를 가지는 연관관계의 주인은 다(多) 방향이 된다.

 

다 방향에는 당연히 @ManyToOne이, 일(一) 방향에는 당연히 @OneToMany가 선언되어 있다.

 

마지막으로 mappedBy는 주인이 아닌 쪽에서 사용 된다.

 

따라서 mappedBy는 @OneToMany의 속성으로 사용된다는 것을 알 수 있다.

 

 

 

@Entity

public class Member{

     // ~ 이전 내용 ~

     @ManyToOne

     @JoinColumn(name="TEAM_ID")

     private Team team;

     // ~ 다음 내용 ~

}

 

@Entity

public class Team{

     // ~ 이전 내용 ~

     @OneToMany(mappedBy = "team")

     @JoinColumn(name="TEAM_ID")

     private Team team;

     // ~ 다음 내용 ~

}

 

 

 

즉 위에서는 다(多) 측인 Member가 Team의 외래키 필드를 갖게 된다고 할 수 있다.

 

이것이 왜 필요한지에 대해 간단히 요약하면,

 

객체 간의 양방향 참조에 유용하게 사용될 수 있기 때문이다.

Comments