JPA 영속성관리

    JPA 영속성관리 , N+1 문제 발생 원인 및 해결방법

    [JPA] N+1 문제 발생 원인과 해결방법 💡 원인 [JPA] 영속성 관리, 준영속 상태와 지연 로딩, N+1 문제 발생 원인 JPA를 사용하여 개발할 때, 성능상 주의해야 할 것이 N+1 문제이다. 📌 즉시 로딩과 N+1 일반적으로 제공되는 find() 메소드 등을 사용할 때는 jpa가 내부적으로 join문에 대한 쿼리를 만들어서 반환을 하기 때문에 즉시 로딩이 큰 문제가 없어 보이기도 합니다. 그러나 JPQL을 사용할 때, 문제가 발생합니다. JPA는 JPQL을 사용할 때는 글로벌 페치 전략을 참고하지 않고 오직 JPQL 만 사용하기 때문에, 즉시 로딩 / 지연 로딩 구분 없이 쿼리문만 따르게 됩니다. List classrooms = em.createQuery("select c from Classr..