[Spring] N+1문제가 일어나지않았는데 결과가 이상하다..

WooHyunLEE·2024년 2월 2일
0

테이블 소개

게시판 1개 조회 api를 만드는 중 집밥토크 게시판테이블이다.

집밥토크에 들어가는 음식사진 테이블이다.

집밥토크 테이블과 음식사진 테이블을 서로 양방향 매핑이 되어있다. 여기서 집밥토크 1개를 조회를 하면 어떻게 될까?????

쿼리

QueryDSL로 쿼리를 만들어보았다. join과 패치조인으로 N+1문제가 안 일어나게 한번에 땡겨왔다. 그리고 스웨거로 테스트해보았다.

스웨거 결과

?????? 어지럽다.. N+1이 일어난걸까??

실제 쿼리

패치조인으로 인해 한번의 쿼리이지만 결과가 계속 서로 양방향 매핑을 통해 중복되는결과가 발생한다.

해결법

음식사진 테이블에 @JsonIgnore 어노테이션을 붙여 양방향 매핑은 유지한채 Response시 집밥토크 테이블을 조회하지않도록 한다.

결과

해결!!


더 좋은 방식있으면 댓글로 알려주시면 감사하겠습니다!

profile
이우현의 개발 블로그입니다.

0개의 댓글