ABoardcado🥑ABoardcado🥑ABoardcado🥑ABoardcado🥑ABoardcado🥑ABoardcado
이전글에서 글 수정까지 만들었다
✂️글 삭제 하러 가보자 ✂️
코딩시작 👩🏻💻
기존 class에 아래 코드를 추가
1. Service
✅ 삭제를 구현하는 메소드() 생성
controller에서 “post/{id}”가 @DeleteMapping되면
id값을 넣어 해당 메소드를 호출해 글삭제 실행
[ BoardService ]
@Transactional
public void deletePost(Long id) {
boardRepository.deleteById(id);
}
✅ deleteById(id);
- save(), findById, findByEmail 등 우린 이런 메소드()를 만든적이 없다
- JPA Repository를 상속하면 메소드명을 스스로 해석하고 JPQL을 생성하고
- ‘ By ‘를 기준으로 Where절에 대응
- Entity 기준으로 검색해 처리해준다
2. Controller
글삭제는 작성, 수정과 다르게 삭제에 필요한 view가 없기 때문에
@DeleteMapping 으로 받아
위의 BoardService에서 정의한 deletePost()를 실행해 view전환 없이 바로 삭제
[ BoardController ]
@DeleteMapping("/post/{id}")
public String delete(@PathVariable("id") Long id) {
boardService.deletePost(id);
return "redirect:/";
}
✅ Html에서 @DeleteMapping 이용하는 법은
지난 글인 글 수정 @PutMapping에서 실컷 설명했다 🤮
✅ @PathVariable(”id”) 으로 요청이 들어온 id값을 이용해
deletePost(id);에 id를 넣어 삭제로직을 호출, 실행
3. Html
✅ 글 상세보기 페이지에서 수정버튼 옆에 삭제버튼을 추가
[ detail.html ]
<form id="delete-form" th:action="@{'/post/' + ${board.id}}" method="post">
<div class="row mt-3">
<div class="col-auto">
<a class="btn btn-info" th:href="@{'/post/edit/' + ${board.id}}" role="button">수정</a>
<input type="hidden" name="_method" value="delete"/>
<button id="delete-btn" type="submit" class="btn btn-danger">삭제</button>
</div>
<div class="col-left mr-auto"></div>
<div class="col-auto">
<a class="btn btn-success" th:href="@{'/'}" role="button">목록</a>
</div>
</div>
</form>
</div>
</div>
</html>
코드는 약 16행 쯤 <class = “row mt-3”> 태그 바로 위부터 아래내용을 전문 교체
- 👇👇 헷갈리니 detail.html 전문 추가
✅ Put 전송과 동일한 방식이지만
삭제 view는 필요 없으니 action으로 바로 submit 하게 되고
아래 방식으로 post가 아닌 delete로 전송하게 된다
1. <form method="Post"> 설정 후
2. <input type="hidden" name="_method" value="delete"/> 같이 전송
✅ Html에서 type=“hidden” 이용하는 법은
글 수정 @PutMapping에서 실컷 설명했다 🤮
모든 button을 <form> 안에 묶은 이유는
form만의 css가 따로 있어서 button 간격이 맘에 들지 않았다ㅜㅜ
후후 😚
이제 확인 해보자~



😍 GOOD !
yeah !! 이렇게 JPA CRUD는 끝났다
하지만 끝낼 수 없다
현재 상황은 글이 늘어날 수록 스압 쩌는 구조,,ㅋㅋ
다음편에서 페이징처리를 해보자
'Project > 🥑JPA + SpringSecurity 게시판' 카테고리의 다른 글
| [JPA + SpringSecurity 게시판] #11 JPA 검색 만들기 (0) | 2022.06.13 |
|---|---|
| [JPA + SpringSecurity 게시판] #10 Pageable 페이징 처리 (0) | 2022.05.31 |
| [JPA + SpringSecurity 게시판] #8 글 수정하기 (0) | 2022.05.10 |
| [JPA + SpringSecurity 게시판] #7 글 상세보기 (0) | 2022.05.02 |
| [JPA + SpringSecurity 게시판] #6 글 리스트 만들기 (0) | 2022.04.24 |