작성한 질문수
자바 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을 실행하게 됩니다.
감사합니다.