본문 바로가기
Spring/JPA/Hibernate

JPQL 조인

by 개복이 2021. 5. 22.

조인

  • 내부 조인 : 
    SELECT m FROM Member m [INNER] JOIN m.team t
  • 외부 조인 : 
    SELECT m FROM Member m LEFT [OUTER] JOIN m.team t
  • 세타 조인 : 
    SELECT count(m) FROM Member m, Team t WHERE m.username = t.name

 

조인 - ON절

  • ON절을 활용한 조인(JPA 2.1부터 지원)
    • 1. 조인 대상 필터링
    • 2. 연관관계 없는 엔티티 외부 조인(하이버네이트 5.1부터)

 

1. 조인 대상 필터링

  • 예) 회원과 팀을 조인하면서, 팀 이름이 A인 팀만 조인
    JPQL :
    SELECT m, t FROM Member m, LEFT JOIN m.team t on t.name = 'A'

    SQL
    SELECT m.*, t.* FROM
    Member m LEFT JOIN Team t ON m.TEAM_ID = t.id and t.name = 'A'

 

2. 연관관계 없는 엔티티 외부 조인

  • 예) 회원의 이름과 팀의 이름이 같은 대상 외부 조인
    JPQL
    SELECT m, t FROM
    Member m LEFT JOIN Team t on m.username = t.name

    SQL
    SELECT m.*, t.* FROM
    Member m LEFT JOIN Team t ON m.username = t.name

 

 

 

Reference

  • 자바 ORM 표준 JPA 프로그래밍

'Spring > JPA/Hibernate' 카테고리의 다른 글

JPQL 타입 표현과 기타식  (0) 2021.05.23
JPQL 서브쿼리  (0) 2021.05.23
JPQL 페이징  (0) 2021.05.22
JPQL 프로젝션(SELECT)  (0) 2021.05.21
JPQL 기본 문법과 쿼리 API  (0) 2021.05.21

댓글