Fetch Join을 포함한 쿼리에 페이징을 같이 적용하면 다음과 같은 문제
LIMIT
, OFFSET
보내주니까 페이징 잘 된 것처럼 보이겠지만 실제로는 메모리에 다 올려놓고 잘라내는 것이니 의미 없고 위험한 행동임@ToMany
와 같이 컬렉션을 Fetch Join하는 경우 row가 중복에 의한 잘못된 데이터 반환 문제@ToOne |
Fetch Join + Pagination |
---|---|
@ToMany |
ID만 페이징 → IN 쿼리 fetch join |
@ManyToOne
, @OneToOne
의 경우, 그냥 fetch join 해도 된다.