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

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

gmlwjd4667님의 프로필 이미지
gmlwjd4667

작성한 질문수

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

영속성 컨텍스트 2

영속성 컨텍스트에 관한 질문

작성

·

112

0

 

 

 

안녕하세요 .

질문이 있습니다. 

위에 사진을 보면 1차 캐쉬에 찾고자하는 Entity가 있으면 

DB에서 조회하지않고 1차캐쉬에서 조회하기떄문에 select 문이 나가지 않는 다는 것은 이해했습니다.

근데 

애플리케이션을 한번더 실행해보니 insert문이 나갔습니다. 

여기서 이해가 잘안되는데 

저는 애플리케이션을 내렸다가 다시 실행하면 1차캐쉬에있는 데이터가 초기화된다고 알고있는데 

DB까지 데이터가 초기화가 되나요?

그래서 애플리케이션을 다시 실행하면 member에 관한 insert문이 나간건가요?

답변 1

1

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

안녕하세요. gmlwjd4667님

코드에 em.persist(member)가 있으면, 기본적으로 DB에 저장하게 됩니다. (1차 케시에 데이터가 없는 경우)

애플리케이션을 내렸다가 다시 올리면 1차 캐시는 제거되고, DB는 유지됩니다.

1차 캐시에 데이터가 없다고 판단하기 때문에 DB에 insert sql을 실행하게 됩니다.

감사합니다.

gmlwjd4667님의 프로필 이미지
gmlwjd4667

작성한 질문수

질문하기