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

taehee-kim-dev님의 프로필 이미지
taehee-kim-dev

작성한 질문수

실전! Querydsl

수정, 삭제 벌크 연산

EntityManager Id(pk)값 부여 질문드립니다.

작성

·

138

0

안녕하세요, 강의 잘 보고 있습니다.

질문을 드리고 싶어서요.

Member memberA = new Member();

em.persist(memberA);

를 하면, Mysql의 IDENTITY 전략의 경우

영속성 컨텍스트에 memberA를 저장하려면 Id값이 필요합니다. 그래서 DB에 insert 쿼리를 날립니다.

그리고 DB에서 배정받은 pk값을 가져와 그제서야 영속성 컨텍스트에 (배정받은 pk값, memberA)의 형태로 저장을 하는데요.

질문 1.

그럼 영속성 컨텍스트 안에 있는 memberA 의 id필드에 pk값이 삽입되어 있는 건가요?

질문 2.

맨 처음 Member를 생성했던

Member memberA = new Member();

에 있는 memberA의 id필드도 DB에 insert할 때 할당받은 pk값이 삽입되는 건가요?

답변 1

1

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

안녕하세요. Taehee-kim-dev님^^

네 맞습니다. 질문1,2 둘다 한번에 답변을 드리자면

em.persist(memberA);

memberA.getId()를 호출해보시면 id가 들어있는 것을 확인할 수 있습니다.

감사합니다.

taehee-kim-dev님의 프로필 이미지
taehee-kim-dev

작성한 질문수

질문하기