
[Spring Data JPA] EntityGraph 사용해서 쿼리 조회 최적화
2022. 9. 26. 21:15
스프링/JPA
EntityGraph 지연로딩 간단 개념 엔티티를 설계할 때 연관관계 매핑에서 FetchType을 보통 LAZY로 설정해주는 게 일반적이다. 지연로딩이라고 흔히 부르는 이 설정은 다양한 연관관계로 매핑되어 있는 엔티티를 호출할 때 셀렉트 쿼리의 최적화를 위해 다른 엔티티를 프록시 객체로 생성하는 것을 말한다. ex) Member와 Team이 N:1(다대일) 관계일 때 Member 엔티티를 호출하면 Team 엔티티는 프록시 객체로 생성되고 Member에만 select 쿼리를 날린다. 쿼리 최적화를 위해 지연로딩 설정을 해주지만 오히려 이런 설정이 최적화에 불리할 때가 있다. Member(N) : Team(1) 엔티티 관계를 예로 들겠다. Member를 생성하면 Team은 프록시 객체다. 그렇기에 Team ..