BoardRepository
public Board findByIdJoinUserAndReplies(Integer id) {
Query query = em.createQuery("select b from Board b join fetch b.user u left join fetch b.replies r join fetch r.user where b.id = :id order by r.id desc", Board.class); // left join (on절은 생략가능하다) -> 객체지향 쿼리
query.setParameter("id", id);
return (Board) query.getSingleResult();
}


h2-console

→ query를 확인했을 때 board에서 조회된 값들이 null로 들어가있음
→ reply_tb와 inner join 하면 댓글이 있는 게시물만 조회되므로 댓글이 없는 1번 게시물을 클릭했을 때 오류가 발생한다
🛠 해결
BoardRepository 수정
join fetch → left join fetch
public Board findByIdJoinUserAndReplies(Integer id) {
Query query = em.createQuery("select b from Board b join fetch b.user u left join fetch b.replies r left join fetch r.user where b.id = :id order by r.id desc", Board.class); // left join (on절은 생략가능하다) -> 객체지향 쿼리
query.setParameter("id", id);
return (Board) query.getSingleResult();
}


Share article