article thumbnail image
Published 2022. 7. 8. 15:52

1. 조인

• 내부 조인:
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

2. 조인 - ON 절

• ON절을 활용한 조인(JPA 2.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. 연관관계 없는 엔티티 외부 조인(하이버네이트 5.1부터)

예) 회원의 이름과 팀의 이름이 같은 대상 외부 조인


JPQL:
SELECT m, t FROMMember 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

 

출처 : 김영한, 자바 ORM 표준 JPA 프로그래밍 - 기본편

'JPA' 카테고리의 다른 글

JPQL 타입 표현  (0) 2022.07.08
서브 쿼리  (0) 2022.07.08
페이징 API  (0) 2022.07.08
프로젝션  (0) 2022.07.08
JPQL(Java Persistence Query Language)  (0) 2022.07.08
복사했습니다!