내용
게시물을 조회하면서 comments도 같이 조회하려고 했는데 게시물 조회가 안 됐음.
package com.sreview.sharedReview.domain.jpa.jpaInterface;
import com.sreview.sharedReview.domain.jpa.entity.Board;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface BoardRepository extends JpaRepository<Board, Long> {
// 추가적인 쿼리 메서드가 필요하다면 작성
@Query("select b from Board b join fetch b.comments c where b.boardId =:boardId")
Optional<Board> findBoardAndCommentsById(@Param("boardId") Long boardId);
}
원인
join fetch만 조회하면 inner 조인으로, 댓글이 없는 경우 게시물을 조회할 수가 없음.
해결
처음에는 join 부분을 아예 제거했음. -> 게시물만 가져오는 것은 잘 되는 것을 확인. ->
생각해보니 댓글이 없으니 외부 left join을 사용해야겠다는 생각으로 left join fetch을 사용.
package com.sreview.sharedReview.domain.jpa.jpaInterface;
import com.sreview.sharedReview.domain.jpa.entity.Board;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Optional;
public interface BoardRepository extends JpaRepository<Board, Long> {
@Query("select b from Board b left join fetch b.comments c where b.boardId =:boardId")
Optional<Board> findBoardAndCommentsById(@Param("boardId") Long boardId);
}
회사에서는 jpa를 사용하지 않아서 기본적은 사용 방법도 가물가물 하다..
집에서 사이드 프로젝트를 꾸준히 해야하는데 다른 개인 공부로 인해 시간이 잘 나지 않아서 좀 소홀히 했더니 얼마 되지도 않아서 기본적인 오류를 일으켰다..
그래도 오류를 해결하고 다른 공부를 할 수 있을 거 같아서 기분은 좋다.
'기타' 카테고리의 다른 글
[오류] cannot open .git/FETCH_HEAD: Permission denied (0) | 2024.07.21 |
---|---|
[CI/CD] 백엔드 CI/CD에 필요한 AWS 지식 1 (0) | 2024.07.15 |
[웹배포] [오류] 스프링부트 배포 중 .jar 빌드 중 오류 기록 (0) | 2024.02.01 |
[웹배포] [오류] 도커 명령어 실행 메모 (0) | 2024.01.25 |
[Git] 깃 클론, 변경 사항 업로드 (0) | 2024.01.22 |