강의

멘토링

로드맵

Inflearn brand logo image

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

wjs3859님의 프로필 이미지
wjs3859

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

JPA와 DB 설정, 동작확인

준영속 상태

작성

·

301

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼ㅇㅁㄴㅇㅇ--저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

영속 상태에서 엔티티의 값을 변경하고 close 메서드로 준영속으로 바꾸면 쓰기 지연 sql 저장소의 값이 사라지는 걸로 배웠는데, 책의 예제에서 준영속인 엔티티를 merge메서드로 영속 상태로 바꾼 후 커밋하면 엔티티의 값이 바뀌었다고 나왔습니다. 준영속으로 되면서 sql 저장소의 값이 사라졌는데 어떻게 값이 바뀌는 건가여 ?

답변 1

0

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

안녕하세요. wjs3859님

JPA책 117p 그림 3.18 준영속 병합을 자세히 읽어보시면 이해가 되실거에요.

핵심은 merge()라는 행위가 기존에 데이터베이스에 보관된 값을 기준으로 새로운 엔티티를 조회한다는 점입니다. 그리고 새로운 엔티티의 값을 준영속 상태의 값으로 변경해버리는 다는 것이지요.

결과적으로 merge()를 통해 새로 조회된 엔티티의 값이 변경되어 버리는 것입니다.

감사합니다.

wjs3859님의 프로필 이미지
wjs3859

작성한 질문수

질문하기