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

Panatta님의 프로필 이미지
Panatta

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

일반 조인에서 나가는 쿼리와 결과의 관계에 대해 질문있습니다.

작성

·

180

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (/아니오)

[질문 내용]
여기에 질문 내용을 남겨주세요.
 
안녕하세요. 일반 조인 쿼리 실행과 관련하여 질문을 드리고자 합니다.
 
일반 조인시에 로그에 표시되는 쿼리는 아래과 같음을 확인하였습니다.
 
Hibernate: /* select m From Member m join m.team t */ select member0_.MEMBER_ID as MEMBER_I1_0_, member0_.age as age2_0_, member0_.TEAM_ID as TEAM_ID4_0_, member0_.username as username3_0_ from Member member0_ inner join Team team1_ on member0_.TEAM_ID=team1_.team_id
 
이 부분에서 의문점이 몇 가지 생겼습니다.
1. 쿼리를 보면 DBMS에서 join 작업을 수행할 것으로 예상이 되는데 제 예상이 맞는지 궁금합니다.
2. 1번의 예상이 맞다면 join 작업의 결과물을 버리고 이후에 N번의 select 쿼리를 요청하는 것인데 왜 이렇게 하는지 궁금합니다.
3. 1번의 예상이 틀리다면 하이버네이트에서 보여주는 쿼리와 실제 DBMS에 전송하는 쿼리의 차이가 존재하는지, 그렇다면 실제 쿼리는 어떻게 확인할 수 있는지 궁금합니다.
 
감사합니다.
 

답변 1

0

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

안녕하세요. Panatta님

조인을 했지만 실제 select 대상은 Member만 대상으로 합니다. 따라서 member만 조회됩니다.

member를 조회하면서 동시에 팀도 조회하려면 강의 JPQL 부분에서 학습하는 패치조인 부분을 다시 학습해보시면 이해가 되실거에요^^

감사합니다.

Panatta님의 프로필 이미지
Panatta

작성한 질문수

질문하기