
모든 코드는 Github에 올라와 있습니다.
A엔티티가 B엔티티를 참조하지만 B엔티티는 A엔티티를 참조하지 않는 경우
엔티티의 참조가 한쪽 방향으로만 있는 경우
객체지향에서는 객체가 다른 객체의 참조를 가지고 있음으로 자유롭게 객체간 탐색을 할 수 있습니다.
Member
Member에서 Team의 id를 가지고 있는 것이 아니라 Team의 참조를 가지고 있습니다.
...
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "MEMBER_ID")
private Long id;
@Column(name = "USERNAME")
private String username;
@ManyToOne
@JoinColumn(name = "TEAM_ID")
private Team team;
...
}
JpaMaina

실행을 해보면

팀의 아이디도 정상적으로 가지고 오고 insert도 정상적으로 된 것을 확인할 수 있습니다.
find team_id가 먼저 출력이 되고 insert가 나중에 나가는 이유는 영속성 컨텍스트의 특징 을 보시면 자세히 알 수 있습니다.
장점
단점