인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

Hwan님의 프로필 이미지
Hwan

작성한 질문수

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

준영속 상태

detach와 관련해서 궁금한 점이 있어 질문 드립니다.

작성

·

141

0

제가 이해하기로는 

member.setName() 할 때 flush가 발생해서 sql이 db에 전송되고

commit()으로 db에 반영되는 것으로 이해했는데요.

 

member.setName() 이후에 em.datach()를 해주면 sql조차 날아가지 않는 것으로 보입니다.

 

그럼 flush 단계에서 무슨 일이 일어나는 것이고 sql이 언제 db로 전송되는 것인지 궁금해서요...

 

혹시 제 이해가 틀린건가요?

답변 1

1

안녕하세요. Hwan님, 공식 서포터즈 David입니다.

.

네, 변경감지가 일어나는 시점에 대해 잘못 알고 계신 것 같습니다.
준영속 상태편 2:18 - 3:15에서 말씀하신 부분에 대해 설명하고 있습니다.

강의 코드를 기준으로 엔티티가 관리되고 있는 상태라면 트랜잭션이 커밋될 때 변경감지에 대한 부분이 적용됩니다.

커밋되기 전에 detach되면 더이상 관리되지 않는 상태이므로 변경감지가 적용되지 않습니다.

플러시 시점은 본 강의 플러시편 1:22를 참고해주세요.
.
감사합니다.

 

 

Hwan님의 프로필 이미지
Hwan

작성한 질문수

질문하기