AddreesEntity 업데이트 쿼리 관련 질문
291
작성한 질문수 1
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
강의 내용에서 설명하신 부분과는 조금 거리가 있는 내용인 것 같습니다만... 의문점이 풀리지 않아서 질문을 남겨 봅니다. 1:N 단방향 연관관계에 대한 질문이 더 맞을 것 같습니다.
강의에서 addressEntity 엔티티와의 연관관계를 OneToMany , 연관관계의 주인을 1쪽에 두셨는데, 쿼리를 보면 addressEntity 에 대한 insert 쿼리가 cascade 때문에 같이 날아가는데 이 시점에서 이미 member_id 즉 addressEntity 입장에서 fk 값이 되는 이 값을 이미 알고 있는걸까요 ? 만약 그렇다면 update 코드는 왜 또한번 jpa 에서 날리는 건지 궁금합니다.
연관관계 주인쪽의 값 변동에 따른 jpa의 추적 메커니즘상 쿼리가 한번 더 날아가는 것일까요 ?
답변 2
0
안녕하세요. qwerty0820님
도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.
실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명
링크: 공식 서포터즈
링크: 자주하는 질문
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. qwerty0820님의 질문에 대해 관련된 정보를 찾아보았습니다.
질문에서 언급하신 “1:N 단방향 연관관계에서의 쿼리 동작 방식, 특히 AddressEntity 업데이트 쿼리와 관련된 처리”에 대한 구체적인 설명은 다음과 같습니다.
연관관계 주인과 쿼리 발생 이해
1:N 연관관계에서 OneToMany 측은 연관관계의 주인이 아니며, 이 경우 JPA는 연관관계를 관리하기 위해 추가적인 업데이트 쿼리를 발생시킬 수 있습니다. 연관관계의 주인이 아닌 쪽에서 변경이 일어날 경우, JPA는 이를 데이터베이스에 반영하기 위해 추가적인 업데이트 쿼리를 날릴 수 있는데, 이는 JPA가 연관관계 주인을 통해서만 연관관계 관리 및 추적을 하기 때문입니다.
질문에서 언급하신 “멤버id(member_id) 즉, AddressEntity 입장에서 FK 값이 이미 알려져 있는가?“에 대한 것은, JPA가 엔티티를 관리하는 과정에서 연관관계 주인을 통해 FK 값을 관리하며, insert 쿼리 실행 시점에는 연관된 엔티티의 식별자(PrimaryKey)가 이미 결정되어 있어야 합니다. 다만, 연관관계 매핑 설정 및 cascade 옵션에 따라 실제 쿼리 발생 시점 및 순서에 차이가 생길 수 있습니다.
이와 관련하여, 특정 키를 가지고 엔티티를 업데이트 하려는 방법에 대한 질문과 유사한 상황을 설명하는 기존 질문 링크를 아래에 첨부합니다. 이 답변은 조금 다른 맥락이긴 하나, 엔티티 업데이트 과정과 JPA의 작동 방식을 이해하는 데 도움이 될 수 있습니다.
- ”엔티티로 변경 후 업데이트 질문 드립니다.“에서는 엔티티를 통한 업데이트 방법에 대해 설명하고 있습니다. 특정 조건을 만족하는 엔티티의 값을 업데이트하는 방법에 대한 구체적인 예시를 제공하고 있습니다.
질문자님의 경우, cascade 옵션 사용과 연관관계의 주인 설정에 따른 JPA의 업데이트 쿼리 발생 메커니즘을 이해하는 것이 핵심 포인트입니다. JPA는 연관관계 주인을 통해 엔티티 간의 연관 관계를 관리하며, 이 과정에서 어떻게 FK를 관리하고, 어떤 상황에서 업데이트 쿼리를 발생시키는지에 대한 이해가 필요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
inheritance startegy 선택시 고려사항
0
11
0
Entity 동등성 비교
0
14
1
실무 조언 관련 질문입니다.
0
41
1
H2데이터베이스 파일 생성
0
52
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
49
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
48
1
JPQL 메소드와 락
0
53
1
Delivery @OneToOne
0
57
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
89
2
UnsupportedOperationException 발생
0
82
3
H2 Database 연결이 안됩니다.
0
89
2
연관관계 매핑 질문드립니다.
0
82
2
h2데이터베이스 실행오류
0
105
2
persistence.xml
0
103
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
77
1
영속성 컨텍스트
0
62
1
JPA 프록시
0
90
1
Native Query와 MyBatis
0
63
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
84
1
임베디드 타입 예시 코드 관련 질문
0
112
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
91
3
인텔리제이 패키지 커서 단축키 질문
0
106
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
137
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
68
1





