조인
SQL 조인과 비슷하지만 차이가 있다면 객체(엔티티) 중심으로 쿼리가 나간다!
조인을 할 땐 묵시적 조인이 아니라 명시적으로 해야한다!!! 최대한 SQL 조인 쿼리문과 비슷하게 작성하는 것이 좋다! 조인 쿼리가 성능에 영향을 주기 때문에 튜닝 요소인 점을 기억하자!
아래 내용은 SQL 기초이기 때문에 SQL 잘 모른다면 찾아서 공부해야한다^^
내부 조인 : (INNER) JOIN SELECT m FROM Member m [INNER] JOIN m.team t Member는 있고 Team이 없으면 데이터 안 나옴.
외부 조인 : LEFT (OUTER) JOIN SELECT m FROM Member m LEFT [OUTER] JOIN m.team t Member는 있고 Team이 없어도 Team데이터 null로 되고 Member와 조인 가능.
세타 조인 select count(m) from Member m, Team t where m.username= t.name 아무런 연관관계가 없을 때. Member와 Team 모두 from에서 select 절에 넣는다. Member X Team cross join이라고 나온다!

주의 사항‼️❣️
Member와 Team은 다대일 관계이기 때문에 Member 클래스 내에서 @ManyToOne으로 매핑되어있다. 디폴트 fetch 타입은 EAGER이므로 Member가 조회될 때 Team도 함께 조회되버리기 때문에 LAZY로 변경해주어야한다!!!
ON : Join할 때 조건. 조인 대상 필터링. ex) 회원과 팀을 조인하면서 팀 이름이 A인 팀만 조인.
JPQL
SQL PK와 FK 조인
연관관계 없는 엔티티 외부 조인 ex) 회원의 이름과 팀의 이름이 같은 대상 외부 조인
JPQL
SQL PK와 FK 조인
Last updated
Was this helpful?