JPQL

JPA

[JPA] N+1, Fetch Join, JPQL @Query 사용 후기

N+1 문제 이전에 김영한님의 JPA 강의 중 연관관계 어노테이션에 @XToOne에 Fetch.Type을 LAZY를 추천한다. @XToMany는 기본으로 LAZY가 걸려있지만 @XToOne은 EAGER가 걸려 SELCT 하는 엔티티가 참조하는 엔티티도 모두 불러오기 때문이다. 참조 타입을 LAZY로 걸고 해당 엔티티를 사용하지 않으면 N+1 문제를 발생하는 쿼리를 발생시키지 않지만 LAZY를 걸어도 해당 엔티티를 사용하면 엔티티 프록시 객체는 모든 값을 가지고 있지 않기 때문에 값을 가져오기 위해 (영속성 컨텍스트,DB)로 N+1 문제를 발생하는 쿼리를 날린다. Join, Fetch Join Spring Data JPA가 제공해주는 것 외에도 JPQL을 사용해야하는 경우엔 @Query를 사용한다. JPQ..

비오베베
'JPQL' 태그의 글 목록