문제
일정에 있는 댓글을 삭제할 때 댓글을 삭제해도 삭제쿼리가 안나와서 DB에 반영이 안되었다.
삭제 로직
@Transactional(readOnly = false)
public void delete(Long scheduleId, Long commentId) {
Schedule schedule = validateScheduleId(scheduleId);
Comment comment = getComment(commentId);
validateCommentIdInSchedule(schedule, comment);
commentRepository.delete(comment);
}
해결
찾아본 결과, 조회를 한 상태(영속화)에서 delete를 해버리면 동기화오류 때문에 삭제하지 않는다는 것이였다. 또한 스케쥴도 검증할 필요가 없고, validateCommentIdInSchedule 이 함수도 문제가 있었던 것 같다.
@Override
@Transactional(readOnly = false)
public void delete(Long commentId) {
Comment comment = getComment(commentId);
commentRepository.delete(comment);
}
'트러블 슈팅' 카테고리의 다른 글
웨이팅 구현 중 동시성 이슈 (0) | 2024.11.04 |
---|---|
MockMvc 테스트 코드 작성중 문제 (0) | 2024.09.10 |
프로젝트 중 문제.. (0) | 2024.09.03 |
깃 커밋 메세지 깨짐 (0) | 2024.08.11 |
CORS 너는 누군데!! 나를 괴롭히냐.. (0) | 2024.07.18 |