✅ 양방향 매핑

→ 사실상 테이블의 연관관계에는 방향이라는 개념 자체가 없다.

그냥 FK 하나 넣으면 양쪽으로 다 알 수 있기 때문 (join)

하지만 객체에서는 다름!

→ 아래처럼 둘 다 세팅을 해야함

Untitled

@Entity
 public class Member { 
 @Id @GeneratedValue
 private Long id;
 @Column(name = "USERNAME")
 private String name;
 private int age;
 @ManyToOne
 @JoinColumn(name = "TEAM_ID")
 private Team team;
 …
@Entity
 public class Team {
 @Id @GeneratedValue
 private Long id;
 private String name;
 @OneToMany(mappedBy = "team")
 List<Member> members = new ArrayList<Member>();
 … 
 }
//조회
 Team findTeam = em.find(Team.class, team.getId()); 
 int memberSize = findTeam.getMembers().size(); //역방향 조회
Member findMember = em.find(Member.class, member.getId());
List<Member> members = findMember.getTeam().getMembers();

for (Member m : members) {
    System.out.println("m = " + m.getUsername());
}

✅⭐ 연관관계의 주인과 mappedBy