작성
·
211
2
안녕하세요 영한님
회원가입 테스트 부분에서 궁금한 점이 생겼습니다.
meber를 persist해서 영속성 컨텍스트에 넣고 findOne으로 조회해서 가져오면, 해당 member는 1차 캐시에 존재하기 때문에 select 쿼리가 날아가지 않을 것 같은데 왜 날아가는지가 궁금합니다.
놓치는 부분이 있을까 해서 활용편 까지 듣고 복습중인데, 다시 보니 처음에는 생각하지 못한 궁금증이 생기네요
좋은 강의 감사드립니다
답변 4
3
1
0
강의 5:59초 보시면
select
member0_.member_id as member_i1_4_,
member0_.city as city2_4_,
member0_.street as street3_4_,
member0_.zipcode as zipcode4_4_,
member0_.name as name5_4_
from
member member0_
where
member0_.name=?
위와 같은 select 쿼리가 날아가는 것 때문에 그렇습니다.
where 부분을 보시면 member0_.name=?
이름을 검색하는 것을 확인할 수 있습니다.
join() 로직 안에서 jpql이 사용되면서 호출되는 select 쿼리입니다.
참고로 JPQL은 항상 SQL로 번역되고 SQL이 실행됩니다.
감사합니다.
0
ㅎㅎ 네
드리고 싶은 조언은 이렇게 의심이 되면 항상 코드로 직접 돌려보면서, 찾아보아야 완전히 본인 것이 됩니다^^!
화이팅!