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

경민님의 프로필 이미지
경민

작성한 질문수

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

페치 조인 1 - 기본

일대다 조인 시 쿼리 궁금증

해결된 질문

작성

·

291

·

수정됨

0


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

[질문 내용]

[1. 일대다 조인]

em.createQuery("select m from Team t join t.members m" , Member.class).getResultList();

Member이 N이고 Team이 1일 때 일대다 조인으로 JPQL 쿼리를 Member만 조회되게 작성하면 Member 뿐만 아니라 Team까지 동시에 조회되는 것을 확인할 수 있었습니다.

 

[2. 다대일 조인]

em.createQuery("select m from Member m join m.team t" , Member.class).getResultList();

em.createQuery("select t from Member m join m.team t" , Team.class).getResultList();

위와 같이 다대일 조인에선 제가 원하던대로 Member 조회 시 Member에 대한 조회 쿼리만 나가고 Team 조회 시 Team에 대한 조회 쿼리만 나가는 것을 확인할 수 있었습니다.

 

[핵심 질문]

다대일로 조인할 때는 제가 지정한 객체만 조회되는 것을 알 수 있었습니다.

왜 일대다로 조인할 때는 [1.일대다 조인] 처럼 Member 뿐만 아니라 Team 까지 덩달아 조회되는 건지 궁금합니다 !

※ 테스트는 전부 지연 로딩으로 진행하였고, [1. 일대다 조인]에서의 결과는 즉시 로딩과 지연 로딩 상관 없이 같은 결과가 나왔습니다.

※ 각 테스트 간 독립성 확보를 위해 em.flush() , em.clear()로 영속성 컨텍스트를 깨끗하게 하면서 진행하였습니다.

답변 1

0

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

안녕하세요. 경민님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

 

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

경민님의 프로필 이미지
경민

작성한 질문수

질문하기