Search

[스프링 게시판] 게시글 삭제 시 첨부파일 삭제

@3/22/2023

문제

게시글 삭제 시 cascade 옵션에 의해 DB에서 삭제는 되지만 파일 저장소의 첨부파일은 그대로 남아있음

FileManager

public void deleteFiles(List<UploadFile> uploadFiles) throws IOException { for (UploadFile uploadFile : uploadFiles) { deleteFile(uploadFile); } } public void deleteFile(UploadFile uploadFile) throws IOException { File file = new File(filePath + uploadFile.getStoredFileName()); Files.deleteIfExists(file.toPath()); }
Java
복사

PostService

@Transactional public void deletePost(Long postId, User user) throws IOException { Post post = findPostById(postId); if (post.getUser().getId() == user.getId() || user.getRole() == Role.ADMIN) { fileManager.deleteFiles(post.getUploadFiles()); postRepository.delete(postId); } else { throw new IllegalStateException("게시글을 삭제할 권한이 없습니다."); } }
Java
복사
위처럼 서비스 계층에서 게시글 삭제 시 파일도 같이 삭제해줌

관련 커밋

162e41d786c8a715e4b2d4e44bf53eb4476b260e
commit