게시물 단건 조회 시 좋아요/싫어요 반영 여부를 확인해야 한다. boardDao
의 findIsLikeByBoardSeqAndBoardTypeSeqAndMemberSeq()
를 통해 다음과 같은 sql
쿼리를 실행하게 된다.
SELECT is_like
FROM forum.board_vote
WHERE board_seq = ? AND board_type_seq = ? AND member_seq = ?;
만약 해당 레코드가 없는 경우 다음과 같은 예외가 발생한다.
Request processing failed; nested exception is org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0
com.pf.www.forum.notice.dao.BoardDao.findIsLikeByBoardSeqAndBoardTypeSeqAndMemberSeq(BoardDao.java:72)
public String findIsLikeByBoardSeqAndBoardTypeSeqAndMemberSeq(Integer boardSeq, Integer boardTypeSeq, Integer memberSeq) {
try {
return boardDao.findIsLikeByBoardSeqAndBoardTypeSeqAndMemberSeq(boardSeq, boardTypeSeq, memberSeq);
} catch (EmptyResultDataAccessException e) {
return "Empty";
}
}
위와 같이 try-catch
문을 통해 예외 처리를 해주었다. 이후 해당 "Empty"
는 model
로 read.jsp
로 전달되는데 "Empty"
인 경우에는 좋아요 또는 싫어요 어떤 것도 표시되지 않는다.