1. DTO 만들기
@Data
public static class updateDTO{
private String title ;
private String content ;
}
클라이언트로부터 받을 새로운 게시글 데이터를 받는다.
2. update 메서드 만들기
board/BoardController
@PostMapping("/board/{id}/update")
public String update(@PathVariable int id,BoardRequest.updateDTO requestDTO,HttpServletRequest request){
//1. 인증체크
User sessionUser = (User) session.getAttribute("sessionUser");
if(sessionUser==null){
return "redirect:/loginForm";
}
//DB 조회
Board board = boardRepository.findByIdCheck(id);
//2. 권한 체크
if(board.getUserId()!=sessionUser.getId()){
request.setAttribute("status",403);
request.setAttribute("msg","게시글을 수정할 권한이 없습니다.");
return "error/40x";
}
//3. 핵심 로직
boardRepository.update(requestDTO,id);
return "redirect:/board/"+id;
}
컨트롤러를 통해 레파지토리에 접근한다.
3. update 쿼리 만들기
board/BoardRepository
@Transactional
public void update(BoardRequest.updateDTO requestDTO, int id) {
Query query = em.createNativeQuery("update board_tb set title = ? , content = ? where id = ?");
query.setParameter(1,requestDTO.getTitle());
query.setParameter(2,requestDTO.getContent());
query.setParameter(3,id);
query.executeUpdate();
}


게시글이 정상적으로 수정된다.
Share article