[Spring] java.sql.SQLIntegrityConstraintViolationException

eunoia73·2024년 10월 25일

trouble shooting

목록 보기
6/16

❗️ 에러문구
java.sql.SQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (forum.board_comment, CONSTRAINT board_comment_FK_01 FOREIGN KEY (board_seq, board_type_seq) REFERENCES board (board_seq, board_type_seq))

❗️ 에러 원인
외래 키 제약 조건: board_comment 테이블이 board 테이블의 특정 행을 참조하고 있으며, 이 참조가 깨지지 않도록 보호하는 외래 키 제약 조건이 설정되어 있다.
참조 무결성: board 테이블에서 행을 삭제하려고 할 때, 해당 행을 참조하는 board_comment의 데이터가 남아 있어 삭제가 불가능

💡 에러 해결 방법

  • boardService에서 게시글을 삭제하기 전에 첨부파일, 댓글, 좋아요/싫어요를 먼저 삭제한다.
//게시글 삭제 (첨부파일, 댓글, 좋아요, 싫어요) 
	public int deleteBoard(int boardSeq, int boardTypeSeq) {
		
		int attachResult = boardAttachRepository.deleteAllAttach(boardSeq, boardTypeSeq);
		int commentResult = boardCommentRepository.deleteAllComment(boardSeq, boardTypeSeq);
		int deleteAllLike = boardRepository.deleteAllLike(boardSeq, boardTypeSeq);
		int deleteAllDisLike = boardRepository.deleteAllDisLike(boardSeq, boardTypeSeq);
		
		
		return boardRepository.deleteBoard(boardSeq, boardTypeSeq);
	}
	

0개의 댓글