JAVA/JPA

(JPA) 조인

ri5 2021. 7. 9. 15:33

조인


- 객체 끼리 조인을 통해 조인 쿼리문을 사용할 수 있다.

 

• 내부 조인

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 절

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 FROM Member m LEFT JOIN m.team t on t.name = 'A'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