twocowsong

양방향 연관관계 저장 본문

IT/JPA

양방향 연관관계 저장

WsCode 2022. 6. 5. 19:38

양방향 연관관계를 사용해서 팀1, 회원1, 회원2를 저장해보겠습니다.

public static void testSave(EntityManager em) {
   // 팀1 객체 생성
   Team team = new Team("team1", "팀1");

   // 팀1 저장
   em.persist(team);

   // 회원1, 회원2 객체 생성
   Member member1 = new Member("member1", "회원1", team);
   Member member2 = new Member("member2", "회원2", team);

   // 회원1, 회원2 저장
   em.persist(member1);
   em.persist(member2);
}

팀1을 저장 후 member엔티티를 생성시에 team의 연관관계를 설정하고 저장하였습니다.

위의 소스코드 실행 후 MEMBE테이블을 조회하면 아래의 결과와 같습니다.

TEAM_ID 외래 키에 TEAM의 키본 키 값이 저장되어있습니다.

양방향 연관관계는 연관관계의 주인이 외래 키를 관리합니다.

주인은 외래키를 사용하는곳에서 주인이 됩니다.

따라서 주인이 아닌 방향은 값을 설정하지 않아도 DB에 외래 키 값이 정상 입력됩니다.

// 연관관계 설정(연관관계의 주인)
member1.setTeam(team);
member2.setTeam(team);

Member.team은 연관관계의 주인입니다.

엔티티 매니저는 이곳에 입력된 값을 사용해서 외래키를 관리합니다.

'IT > JPA' 카테고리의 다른 글

실전 예제  (0) 2022.06.07
양방향 연관관계의 주의점  (0) 2022.06.06
연관관계의 주인  (0) 2022.06.04
양방향 연관관계 매핑  (0) 2022.06.03
양방향 연관관계  (0) 2022.06.01