// @Column(name = "TEAM_ID")
// private Long teamId;
@ManyToOne //한 팀에 여러개의 회원이 소속 멤버 입장이 many
@JoinColumn(name = "TEAM_ID")
private Team team;
@OneToMany(mappedBy = "team") //member의 team이랑 엮여 있다
private List<Member> members = new ArrayList<>();
Member member = new Member();
member.setUsername("member1");
em.persist(member);
Team team = new Team();
team.setName("TeamA");
team.getMembers().add(member); >> Member의 외래키 값이 null이 뜬다
em.persist(team);
==========================================================
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setUsername("member1");
member.setTeam(team); >>> 연관관계의 주인에 값을 주입해줘야한다
em.persist(member);
team.getMember().add(member);
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setUsername("member1");
member.setTeam(team);
em.persist(member);
// em.flush();
// em.clear();
// team.getMembers().add(member);
// 1차 캐시의 값을 그대로 가져온다. db select문이 아니라서 빈 배열이 나온다
Team findTeam = em.find(Team.class, team.getId());
List<Member> members = findTeam.getMembers();
>> commit 후 insert문이 실행되서 빈 컬랙션이 나온다
무한 루프를 조심해야한다.
양방향 매핑 정리