개발공부/[Spring]김영한_ORM표준 JPA프로그래밍

[spring]단방향 연관관계

개발자 덕구🐾 2022. 8. 18. 10:43
728x90

 

한 팀(TEAM)에 여러 Member가 있는 1:N관계를 가정하자.

 

 

그러면 TEAM의 ID가 FK로 Member 테이블에 들어있어야 한다. 

이를 연관관계를 이용하면 좀 더 객체지향적으로 만들 수 있다. 

 

 

테이블은 외래 키로 조인하여 연관된 테이블을 찾고

객체는 참조를 사용해 연관된 객체를 찾는다는 차이가 있다. 

 

 

 

 

 

 

 

 

<Member  엔티티> 

 

@ManyToOne
@JoinColumn(name="TEAM_ID")
private Team team;

 

 

Member에서 Team 자체를 갖고있다. (Team의 id를 갖고있는 것이 아니라)

위 코드처럼 작성하면 Member의 team과 TEAM_ID가 연관관계 매핑이 된다.

 

 

@ManyToOne 과 같은 어노테이션을 통해 매핑을 하여 이 관계가 1:N인지 N:M인지 N:1인지 알려줘야한다. 

Member 여러 명이 하나의 팀에 소속되는 것이므로 Many가 Member쪽에 있다. 

 

 

@joinColumn을 통해 TEAM_ID(team의 pk)와 매핑을 한다. 

 

반응형