강의

멘토링

로드맵

Inflearn Community Q&A

prince's profile image
prince

asked

Real-world! Spring Boot and JPA Utilization 1 - Web Application Development

Member functionality test

영속성 컨텍스트 질문

Written on

·

308

2

안녕하세요 영한님

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

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

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

좋은 강의 감사드립니다

springspring-boot웹앱JPAjava

Quiz

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

성능 최적화 방식

데이터 타입 지원 범위

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

파라미터 바인딩 방식

Answer 4

3

prince님의 프로필 이미지
prince
Questioner

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

yh님의 프로필 이미지
yh
Instructor

ㅎㅎ 네

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

화이팅!

1

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

0

prince님의 프로필 이미지
prince
Questioner

강의 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 쿼리가 날아가는 것 때문에 그렇습니다.

yh님의 프로필 이미지
yh
Instructor

where 부분을 보시면 member0_.name=?

이름을 검색하는 것을 확인할 수 있습니다.

join() 로직 안에서 jpql이 사용되면서 호출되는 select 쿼리입니다.

참고로 JPQL은 항상 SQL로 번역되고 SQL이 실행됩니다.

감사합니다.

0

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 지훈님

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

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

prince's profile image
prince

asked

Ask a question