[Member]
@Entity
public class Member {
@Id @GeneratedValue
@Column(name="MEMBER_ID")
private Long id;
@Column(name="USERNAME")
private String username;
// getter, setter...
}
[Team]
@Entity
public class Team {
@Id @GeneratedValue
@Column(name="TEAM_ID")
private Long id;
@Column(name="NAME")
private String name;
@OneToMany
@JoinColumn(name="TEAM_ID")
private List<Member> members = new ArrayList<>();
// getter, setter..
}
[JpaMain]
Member member = new Member();
member.setUsername("member1");
em.persist(member);
Team team = new Team();
team.setName("teamA");
team.getMembers().add(member);
em.persist(team);
[JpaMain 실행시 나가는 쿼리]
INSERT INTO MEMBER (USERNAME, MEMBER_ID) VALUES ('member1', 1);
INSERT INTO TEAM (NAME, TEAM_ID) VALUES ('teamA', 1);
UPDATE MEMBER SET TEAM_ID = 1 WEHRE MEMBER_ID = 1;
JPA 관련 강의도 그렇고 관련 글을 보면 양방향 연관관계보다 단방향 연관관계를 권장하고 있다. 그런데 이는 반은 맞고 반은 틀린 주장이다.
정확히는 다대일(N:1)의 단방향 연관관계를 권장하고 있는 것이다.
이는 양방향보다 단방향이 좋다?편에서 확인할 수 있다.