Search

JPQL 주의사항

to-many 관계
fetch join 지양
쿼리의 개수를 줄이기 위해 one-to-many 관계에서 fetch join 을 하였다.
many 의 개수만큼 중복된 데이터가 발생하여 오히려 성능이 안좋아졌다.
차라리 쿼리 1개가 더 나가더라도 join 을 걸지 않는게 성능상 좋았다.
fetch type=EAGER
단건 조회시 left outer join
중복 레코드 조회
목록 조회시 우선 find all 하고 바로 to many 의 데이터 조회
N+1 발생
many-to-one 관계
fetch type=EAGER
단건 조회시
join column 에 nullable false 하면 inner, true 하면 left outer join
LAZY
목록 조회시
iter 돌면 N+1
batch size 설정하면 one 에 해당하는 객체 조회시 in 절 발생
ENUM 의 경우 패키지명까지 포함하여 넣어야 한다.