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