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

Inflearn Community Q&A

터틀맨's profile image
터틀맨

asked

Practice! Querydsl

Pure JPA Repository and Querydsl

QueryDsl 1차 캐시관련

Resolved

Written on

·

742

1

안녕하세요, 강사님!

강의를  복습하다가 궁금증이 생겨 질문 남깁니다.

조회된 엔티티는 영속화되며 1차 캐시에 저장이 되고 

특별한 이벤트?! (EntityManager.clear() 또는 Transation이 종료 등등..)로 1차 캐시 내용이 없어진다고 이해하고 있습니다.

이렇게 이해한 내용 토대로  QueryDsl을 사용해도 1차 캐시를 사용하겠지라는 생각과는 다르게 동작하여 개념이 혼돈되고 있습니다.

아래 사진을 참고하시면

첫번째 쿼리를 실행후 그다음 쿼리 실행시 1차 캐시된 엔티티를 찾아 반환해 줘야하는데 다시 DB에 쿼리를 날려 결과를  가지고왔습니다.

제가 어떤 부분을 잘못 이해하고 있는 걸까요?

JPAjava

Answer 1

2

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 데비님^^

em.find()는 영속성 컨텍스트에서 바로 찾아옵니다.

그런데 JPQL의 경우 항상 SQL로 번역되어서 우선 실행이 됩니다.

작성하신 부분도 결국 JPQL이 실행되는 것이기 때문에 SQL이 실행되는 것이 맞습니다.

감사합니다.

터틀맨님의 프로필 이미지
터틀맨
Questioner

답변 감사합니다!!

터틀맨's profile image
터틀맨

asked

Ask a question