
위와 같은 엔티티에서 findByUserIdAndPopUpStoreId로 하면 User 테이블과 PopUpStore 테이블과 join을 하여 다음과 같은 쿼리가 실행된다.

내가 원하는 건 bookmark 테이블의 컬럼 값만 가지고 where절을 통해 조회를 하고 싶은데 보면 불필요한 join이 발생함을 알 수 있다. 이 불필요한 join문을 제거할 방법이 있는데, 그것은 where 절에 연관관계 엔티티를 넣어 조회하는 것이다.

위와 같이 Spring Data JPA findBy의 파라미터로 엔티티를 전달하면 다음과 같이 join문이 제거되고 내가 원하던 쿼리가 실행된다.

'JPA' 카테고리의 다른 글
| [JPA] 영속성 컨텍스트란? (0) | 2023.06.29 |
|---|