Jpa 사실과 오해

robert·2022년 11월 17일
0

JPA 사실과 오해라는 제목의 영상을 보고 알아두면 좋을 거 같아 내용을 간단하게 정리해봤다.

Jpa 사실과 오해

  • 일반적으로 객체 그래프 탐색의 경우 단방향을 우선해서 만드는게 맞다.
  • 하지만 1:N 단방향 매핑에 cascade 이며 save 를 할때 추가적인 update 가 나갈 수 있으니 양방향으로 하는게 좋다.

N+1 문제의 사실과 오해

  • N+1 문제 해결방법

    • fetch join
    • entity graph
  • N+1 문제는 eager fetch 때문에 발생한다고 오해할 수 있는데 이것은 틀린 말이다. lazy fetch의 경우도 참조된 객체를 사용 시점에 호출하기 따문에 N+1 발생한다.

  • pagination + fetch join -> 결과 자체는 limit이 걸려서 넘어 오지만 실제로는 limit 조회 없이 모든 레코드 조회한다.

  • 둘 이상의 컬렉션을 fetch join - multiple bag fetch exception

    • set 사용 시 조회 가능
  • 쿼리메소드로 join 할 수 있다 -> 언더스코어(_) 사용하여 가능하다.

  • 쿼리메소드

    • getAllByName -> Page로 리턴
    • readAllByName -> Slice로 리턴
    • dto projectuon 가능하다.
      • interface는 중첩구조도 가능.
profile
화이팅!

0개의 댓글