JPA Fetch Join
JPA Fetch Join
JPA Join 비교
- JPA는 일반 join과 fetch join 존재
- 일반 join
- JPQL에서 조회하는 entity만 영속화
- 연관된 entity의 데이터가 필요 없을 때 사용
- 연관된 entity의 데이터를 사용하는 경우 N + 1 문제 혹은
LazyInitializationException
발생 가능
- Fetch join
- JPQL에서 조회하는 entity에 연관된 모든 엔티티도 같이 영속화
- 연관된 entity의 데이터가 있기 때문에 N + 1 문제가 발생하지 않음
- 연관된 entity의 데이터를 사용하는 경우에만 fetch join을 하는 게 좋음
Fetch join 사용 방법
SELECT p FROM pickup p JOIN FETCH p.student
- 위와 같이 select 문 뒤에
join fetch
키워드를 붙이고, 연관된 엔티티를 작성하면 됨 - 위의 경우는 픽업 정보를 가져오면서 해당하는 학생 정보를 같이 가져오는 예시