유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
댓글이 있는 게시글을 삭제하려고하면 생기는 오류가 있어서 수정하고자한다.
아래와같이 댓글이 있는 게시글을 삭제해보면
이렇게 에러가 뜨는걸 확인할 수 있다.
그에 반해서 얼러트는 글삭제가 잘 되었다고 말해주고 있다.
메인페이지를 확인해보면 삭제되지 않은 게시글을 확인할 수 있다.
해당 부분을 고치기위해서 board.js로 이동해서 조건문을 추가해준다.
if(resp.status !== 200){
alert("글삭제실패");
}else{
alert("글삭제완료");
}
서버에서 테스트를 진행해보면 정상적으로 작동했을때인 200값을 리턴해주지 않아서 얼러트가 작동하는걸 확인할 수 있다.
댓글이 없는 게시글을 만들어 삭제를 진행해보면 삭제가 완료되었다는 얼러트가 나오고
해당 게시글은 삭제가 된 모습을 확인해 볼 수 있다. 1차적인 문제는 해결 완료
여기서 댓글이 있는 게시글이 삭제가 되지 않는 이유는 게시글 삭제를 시도 했을때 댓글들은 어떻게 처리를 할지 정해놓지 않았기 때문이다.
reply테이블에서 id라는 컬럼명으로 게시글의 고유번호를 가지고 있는데 해당 게시글을 삭제를 해버리면 게시글의 고유번호를 가지고 있는
댓글들은 잡고있어야할 손이 없어지는 상황이라 에러가 뜬다.
그래서 이문제를 해결하기 위해서 board 객체로 이동해서 replys에 해당부분을 추가해주면 된다.
cascade = CascadeType.REMOVE는 삭제하면 연관된 값들이 같이 삭제된다.
@OneToMany(mappedBy = "board", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE)
@JsonIgnoreProperties({"board"})
@OrderBy("replyId desc")
private List<Reply> replys;
그 후 삭제를 시도해보면 삭제가 완료되었다는 얼러트가 나오고 메인에서 확인해보면 댓글을 가지고 있던 게시글3이 삭제된걸 확인할 수 있다.
db도 확인해보면 게시글 3과의 손을 잡고 있던(참조하고있던) 댓글이 함께 삭제된걸 확인할 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 34. 댓글삭제 (0) | 2023.06.23 |
---|---|
[블로그프로젝트] 33. 댓글작성하기 (0) | 2023.06.21 |
[블로그프로젝트] 32. 댓글리스트 출력 (0) | 2023.06.21 |
[블로그프로젝트] 31. 카카오로그인(2) (0) | 2023.06.20 |
[블로그프로젝트] 30. 카카오로그인(1) (0) | 2023.06.19 |
댓글