[JPA] Fetch Join 시 주의사항
JPA Fetch Join 사용 시 주의해야 할 점과 유용한 팁을 정리해 놓았습니다.
JPQL 을 사용하다 보면, join fetch 를 사용하게 될 일이 많은데, 이 때의 주의사항 및 팁을 정리한다.
1. Many-To-One, One-To-One 의 경우, Join Fetch 사용을 권장한다.
- Fetch Join 을 한다고 해도, 반환되는 총 Row 의 수가 증가하지 않는다.
2. One-To-Many 의 경우, Fetch Join 을 사용하지 않고, Lazy Load 기능을 사용한다. (get 메소드를 통해서 Lazy Load)
- 이 때, N+1 문제를 해결하기 위해
spring.jpa.properties.hibernate.default_batch_fetch_size=100
설정을 사용한다. 이 설정을 통해, N+1 번의 쿼리가 나가는 것을 막을 수 있고, 한 번에 100 개 씩 Row 를 얻어온다.
3. Many-To-Many 의 경우, 실무에서는 사용하면 안된다.
이것도 읽어보세요