강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김지훈님의 프로필 이미지
김지훈

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

회원 기능 테스트

영속성 컨텍스트 질문

작성

·

305

2

안녕하세요 영한님

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

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

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

좋은 강의 감사드립니다

퀴즈

JPA에서 SQL과 JPQL 쿼리의 주요 차이점은 무엇인가요?

성능 최적화 방식

데이터 타입 지원 범위

테이블 기반 vs 엔티티 객체 기반

파라미터 바인딩 방식

답변 4

3

김지훈님의 프로필 이미지
김지훈
질문자

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

김영한님의 프로필 이미지
김영한
지식공유자

ㅎㅎ 네

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

화이팅!

1

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

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

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 지훈님

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

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

김지훈님의 프로필 이미지
김지훈

작성한 질문수

질문하기