1. View

익명글 수정하기는 기존 게시글 작성과 동일하다. 회원으로 부터 데이터를 받을 DTO를 만들자.
board/BoardRequest
@Data
public static class saveAgainDTO{
private String author ;
private String title ;
private String content ;
}
게시글 작성 때 만든
saveDTO
와 동일하지만 일관성을 유지하기 위해 saveAgainDTO
를 새로 만든다.2. 컨트롤러
@PostMapping("/board/{id}/update")
public String update(@PathVariable int id,BoardRequest.saveAgainDTO requestDTO,HttpServletRequest request){
if(requestDTO.getTitle().length()>20){
request.setAttribute("status",400);
request.setAttribute("msg","제목은 20자를 넘을 수 없습니다.");
return "error/40x";
}
if(requestDTO.getContent().length()>20){
request.setAttribute("status",400);
request.setAttribute("msg","내용은 20자를 넘을 수 없습니다.");
return "error/40x";
}
boardRepository.update(requestDTO,id);
return "redirect:/";
}
전달받은 DTO를 레파지토리에 전달한다.
3. 레파지토리
@Transactional
public void update(BoardRequest.saveAgainDTO requestDTO,int id) {
Query query = em.createNativeQuery("update board_tb set author =?, title = ?, content = ? where id = ? ");
query.setParameter(1,requestDTO.getAuthor());
query.setParameter(2,requestDTO.getTitle());
query.setParameter(3,requestDTO.getContent());
query.setParameter(4,id);
query.executeUpdate();
}
save 메서드와 동일하지만 게시판 번호를 확인해야 하기 때문에 id 를 조회한다.
4. 데이터 수정



데이터 수정이 완료됐다.
Share article