반응형
페치 조인 과 일반 조인의 차이
join fetch
페치 조인을 사용하면 연관된 엔티티도 함께 조회(즉시 로딩)
-> 따라서 컬렉션 엔티티로 조회해도 쿼리가 안날라감
-> 객체 그래프를 SQL 한번에 조회하는 개념
-> 결국 연관된 엔티티를 함께 조회한다 >> 페치 조인의 장점 N+1 문제 해결
SQL
일반 조인은 SELECT절에 지정한 엔티티만 조회하게 된다
-> 따라서 컬렉션 엔티티로 조회하게 된다면 쿼리가 다시 날라감. >> 이게 바로 N+1 문제
페치 조인의 특징 과 한계
query = "select t From Team t join fetch t.members m";
이러한 쿼리 문이 있을때
t.members m 같이 별칭을 사용하게 되면 안된다
왜냐하면 t.members안에는 team 과 관련된 members에 대한 정보들이 전부 들어있는데
이러한 members의 데이터를 건드리게 된다면 만약 10개의 데이터중 4개만 가져왔다면
다음에 t.members 호출하게 되면 4건의 데이터만 나오게 된다
만약 members에 대한 정보를 조회해야하는 상황이 온다면
Team Entity 에서가 아닌 Member Ent
반응형
'Spring' 카테고리의 다른 글
[Spring] 스프링 JPA 메소드 설정 (0) | 2024.01.11 |
---|---|
[Spring] Q&A 양방향 연관관계 매핑 일 때 데이터 추가 (0) | 2024.01.10 |
[Spring] @CASCADE , 고아 객체 (0) | 2024.01.08 |
[Spring] 지연 로딩 과 프록시 연관관계 (1) | 2024.01.07 |
[Spring] 컬렉션 조회 최적화 방향성 (0) | 2024.01.06 |