인프런 커뮤니티 질문&답변

기팝님의 프로필 이미지
기팝

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

양방향 연관관계와 연관관계의 주인 1- 기본

연관관계

작성

·

292

0

1 : N 관계에서
 
19:35 를보시면
 
만약에 1 (Team)쪽을 주인으로 정하면 Team의 members의 값을 바꾸면 다른테이블에 update 쿼리가 나간다고 말씀해주셨습니다.
 
근데 햇갈리는건
 
N 쪽을 주인으로 정해도
 
member.getTeam().setName("test");
 
이렇게 하면 update 쿼리가 Member 테이블이 아닌
Team 테이블에서 나갑니다
같은 현상 아닌가요 ?
 
//저장
Team team = new Team();
team.setName("TeamA");
em.persist(team);

Member member = new Member();
member.setUsername("member1");
member.setTeam(team);


member.getTeam().setName("test");
em.persist(member);
em.persist(team);

em.flush();
 

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 기팝님

2가지를 분리해서 생각해야 합니다.

1. 연관관계(FK)를 변경하는 것

2. 엔티티 자체의 데이터를 변경하는 것

 

여기서 연관관계와 관련된 것은 1번으로 한정해서 생각하시면 됩니다.

엔티티 자체의 데이터를 변경하면 JPA는 변경 감지를 통해 해당 엔티티의 데이터를 변경하는 UPDATE 쿼리를 실행합니다.

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

항상 감사합니다 

엔티티 자체의 데이터를 변경하는게 아니라

FK를 중점으로 보시라는 말씀이시죠?

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기