(연관관계의 주인에 값을 입력하지 않음)
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setName("member1");
//역방향(주인이 아닌 방향)만 연관관계 설정
team.getMembers().add(member);
em.persist(member);

(순수한 객체 관계를 고려하면 항상 양쪽다 값을 입력해야 한다.)
→ 안그러면 영속성 컨텍스트에서 1차 캐시에 담기지 않는다. ( 또 test case 작성할 때도 문제 생김 )
Team team = new Team();
team.setName("TeamA");
em.persist(team);
Member member = new Member();
member.setName("member1");
team.getMembers().add(member);
//연관관계의 주인에 값 설정
**member.setTeam(team); //****
em.persist(member);

mport javax.persistence.*;
import java.util.Date;
@Entity
public class Member {
@Id @GeneratedValue
@Column(name = "MEMBER_ID")
private Long id;
@Column(name = "USERNAME")
private String username;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TEAM_ID")
private Team team;
public Team getTeam() {
return team;
}
// 연관관계 편의 메소드 (양쪽에 다 값 세팅 할 수 있다)
**public void changeTeam(Team team) {
this.team = team;
team.getMembers().add(this);
}**
엔티티를 api에 반환해버리면 나중에 api 스펙이 바뀌어버림! 그래서 DTO로 변환해서 반환해라!