• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

영속성 컨텍스트 질문

21.05.13 10:32 작성 조회수 122

2

안녕하세요 영한님

회원가입 테스트 부분에서 궁금한 점이 생겼습니다.

meber를 persist해서 영속성 컨텍스트에 넣고 findOne으로 조회해서 가져오면, 해당 member는 1차 캐시에 존재하기 때문에 select 쿼리가 날아가지 않을 것 같은데 왜 날아가는지가 궁금합니다.

놓치는 부분이 있을까 해서 활용편 까지 듣고 복습중인데, 다시 보니 처음에는 생각하지 못한 궁금증이 생기네요

좋은 강의 감사드립니다

답변 4

·

답변을 작성해보세요.

3

김지훈님의 프로필

김지훈

질문자

2021.05.13

아 중복 회원을 검사하는 메소드 때문에 발생한 쿼리군요 죄송합니다 ㅜㅜ

ㅎㅎ 네

드리고 싶은 조언은 이렇게 의심이 되면 항상 코드로 직접 돌려보면서, 찾아보아야 완전히 본인 것이 됩니다^^!

화이팅!

1

염재선님의 프로필

염재선

2021.07.08

저도 select쿼리가 왜나가지 싶었는데 그런이유가있었네요 감사합니다

0

김지훈님의 프로필

김지훈

질문자

2021.05.13

강의 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

안녕하세요. 지훈님

select 쿼리가 날아가지 않아서 정상입니다.

관련된 코드를 남겨서 설명해주시겠어요?