작성
·
234
0
답변 1
2
안녕하세요. newguidance9님
혹시 스프링 데이터 JPA를 사용하시나요?
그렇다면 findOneById? 이 부분이 문제입니다.
findOneById라고 하면 스프링 데이터 JPA는 다음과 같은 JPQL을 직접 실행하게 됩니다.
select m from Member m where mid=?
JPQL이 직접 실행되면 항상 SQL이 실행됩니다.
findById를 실행하시면 스프링 데이터 JPA가 영속성 컨텍스트에서 엔티티를 조회하는 em.find()를 실행합니다.
정리
em.find() vs JPQL
em.find() -> 영속성 컨텍스트를 먼저 조회하고 없으면 SQL을 실행
JPQL -> SQL을 먼저 실행
감사합니다.