테이블의 연관관계와 객체의 연관관계는 성격이 다르며,이를 고려해서 연관관계 매핑을 해야 한다.
*객체는 **참조(주소)*로 다른 객체를 참조하여 연관관계를 맺는다. JPA에서도 내부적으로 실제 엔티티간(객체간) 관계에서 서로 주소값을 참조 한다.
하지만,테이블은 외래키를 통해서 서로 접근하여 연관관계(참조)를 맺는다.테이블은 한쪽이 외래키를 가지고 있으면 양쪽 모두 참조할 수 있는데 반해,객체는 서로 참조하려면 양쪽다 주소값을 가지고 있어야 한다는 점이 다르다.
일단 , 다대일 간의 관계를 가장 먼저 살펴 보기로 한다.

회원 객체와 팀 객체는 단방향 관계다.
단방향 연관관계
일방적으로 한 쪽 객체에서만 참조 가능한 경우이다.
class A {
B b;
}
class B { };
양방향 연관관계
객체를 양방향으로 참조하려면 ,인위적으로 단방향 연관관계를 2개 만들어야 줘야 한다.
class A {
B b;
}
class B {
A a;
};
회원 객체는 Member.team 필드로 Team 객체와 연관관계를 맺는다.
회원은 Member.team 필드를 통해서 Team을 알 수 있지만 반대로 팀은 회원을 알수 없다.
public class Member{
private String id;
private String username;
**private Team team;** //팀의 참조를 보관
public void setTeam(Team team){
this.team=team;
}
}
public class Team{
private String id;
private String name;
//Member 객체를 참조할 필드값이 없다.
}
public static void main(String [] args) {
Member member1 = new Member("member1","회원1");
Member member2 = new Member("member2","회원2");
Team team1 = new Team("team1","팀1");
member1.setTeam(team1);
member2.setTeam(team1);
Team findTeam = member1.getTeam();
}
