•
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 의 경우 패키지명까지 포함하여 넣어야 한다.