해결됨
자바 ORM 표준 JPA 프로그래밍 - 기본편
1:N 양방향 매핑할 때 저장순서에 따른 쿼리
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 연관관계 코드로 쳐보면서 하다가 이상한 부분이 있어서 궁금증이 생겨 질문합니다.Member : N Team : 1 로 Member가 연관관계 주인인 상태로 member와 team 객체의 연관관계를 설정하고public class Member {
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TEAM_ID")
private Team team;
}public class Team {
@OneToMany(mappedBy = "team") // Member의 team과 연결되어있다.
private List<Member> members = new ArrayList<>();
}member 저장후 team 저장시 member insert team insert가 나간 뒤에member update 쿼리가 나가는데이때 member의 모든 필드에 대한 업데이트 쿼리가 나갑니다.Member member = new Member();
member.setUsername("member1");
Team team = new Team();
team.setName("team1");
member.setTeam(team);
team.getMembers().add(member);
em.persist(member);
em.persist(team);
em.flush();
em.clear();이게 왜이런지 모르겠습니다. member가 먼저 추가되면서 teamId가 설정됬을 텐데 실질적인 team 이 데이터베이스에 없어서 team이 추가된 뒤에 연관관계를 맞추기위해 member의 모든 필드를 update했다고 봐야하나요?그러면 teamId만 update 해주면 되는데 모든 필드를 업데이트하는 이유가 궁금합니다. 항상 감사합니다.