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

이진석님의 프로필 이미지
이진석

작성한 질문수

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

양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리

궁금한점이 있어 질문드립니다

작성

·

175

0

 team.getid에서 값을 불러와서 쓰시는데 team이라는 객체에 언제 id가 셋팅되는건지 궁금합니다 sequance나 auto에서 em.persist에서 sequance을 읽어 오는걸로 배웟는데 거기서 team이라는 객체에도 값이 셋팅 되는건가요???

답변 1

1

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

안녕하세요. 진석님

영속성 컨텍스트에 엔티티가 저장되고 관련하려면 항상 PK 값이 필요합니다.

따라서 em.persist()를 하는 순간에 DB에서 시퀀스 값을 조회해서 ID 값을 넣어줍니다.

감사합니다.

이진석님의 프로필 이미지
이진석
질문자

아 궁금한점은 중간에 clear를 통해 영속성 컨테스트를 비워 주었는데 team.getId()로 어떻게 id 값을 불러 왔는지 궁금해서 질문 드렸습니다

그전에 시퀀스값을 조회에서 영속성컨테스트에 넣었으면 clear할때 같이 값이 날라가는게 아닌지 궁금해서요!

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

네 em.persist() 순간에 시퀀스 값을 조회해서 team.id에 주입해줍니다^^

이미 넣어준 값이기 때문에 영속성 컨텍스트와 무관하게 객체에 id 값은 남아있습니다.

감사합니다.

이진석님의 프로필 이미지
이진석

작성한 질문수

질문하기