• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

엔티티 직접 사용 - 묵시적 조인 질문입니다.

20.10.14 10:57 작성 조회수 158

4

[엔티티 직접 사용 - 외래 키 값] 강좌에서 질문이 있습니다.

"select m from Member m where m.team = :team" 에서 앞에서 배운 "경로 표현식"에서 본 경우와 같이 경로 탐색(m.team)을 사용하므로 묵시적으로 m와 t 사이에 조인이 일어날것 같은데 일어나지를 않네요. 그래서 "경로 표현식"에서 한 예제와 어떤 차이가 나는건지 알고 싶습니다.

(* 경로 탐색은 select와 where절에서 사용가능)

감사합니다.

답변 2

·

답변을 작성해보세요.

4

안녕하세요. 민이님

select m.team from Member m -> 묵시적 조인 발생(team 엔티티의 값을 select 해야하기 때문에 묵시적 조인 발생)

select m from Member m. where m.team = :team -> 묵시적 조인 발생X(team 엔티티 자체가 외래키를 가르키기 때문에 묵시적 조인이 발생하지 않습니다.)

엔티티를 직접 사용해서 비교하는 경우에는 묵시적 조인이 발생하지 않는다고 생각하시면 됩니다. 그런데 엔티티를 직접 사용해서 1번 처럼 그 엔티티에 포함된 값이 추가로 필요한 경우에 묵시적 조인이 발생한다고 생각하시면 됩니다.

감사합니다.

1

민이님의 프로필

민이

질문자

2020.10.14

감사합니다~