인프런 커뮤니티 질문&답변
연관관계가 있는 조인 실행 시 질문 드립니다.
작성
·
213
0
[질문 내용]
좋은 강의 잘 듣고 있습니다.
연관관계가 있는 두 엔터티 간에 inner join 시 먼저 알려주신 방법인 em.createQuery("select m from Member m join Team t on m.team = t.id", Member.class)
과, 하이버네이트 5.1 버전 이후의 on 절을 사용한
em.createQuery("select m from Member m join m.team t", Member.class)
의 차이가 무엇인지 궁금합니다.
결과로 나온 쿼리는 괄호 유무만 다르고 동일함을 확인하였는데, 권장하시는 방법과 그 이유를 알고 싶습니다
*실무에서 sql 사용 시에 후자의 방식으로 쿼리를 쓰는 것이 익숙하여 한번 실행해 보았는데 실행이 되어서 신기한 마음에 여쭤봅니다.
다시한번 좋은 강의 감사 드립니다.
답변 1
0
김영한
지식공유자
안녕하세요. 박지홍님
해당 내용이 강의에 모두 설명이 되어 있습니다^^
기본적으로는 member m join m.team 과 같은 방식을 사용하시는 것을 권장합니다.
여기에 추가로 강의에서 설명드린 것 처럼
1. 조인 대상을 필터링 하거나
2. 연관관계 없는 엔티티를 외부 조인할 때 on을 사용하시면 됩니다.
감사합니다.





