56. PC를 이용한 게시글쓰기

박선규's avatar
Mar 18, 2024
56. PC를 이용한 게시글쓰기

View 확인

notion image
 
import lombok.Data; import shop.mtcoding.blog.user.User; public class BoardRequest { @Data public static class SaveDTO{ private String title; private String content; //DTO를 클라이언트로부터 받아서 영속성 컨텍스트에 전달하기 위해 사용 //INSERT 하는 DTO에서만 만든다. public Board toEntity(User user){ return Board.builder() .title(title) .content(content) .user(user) //user id 가 아니라 user 객체를 넣으면 됨 .build(); } } }
📌
DTO 에 toEntity 메서드를 생성한다. 이 메서드를 통해 DTO 를 통해 받은 데이터를 엔티티로 만들 수 있다. 엔티티로 만들게 되면 INSERT 할 때 persist 메서드를 사용할 수 있어 훨씬 편리하다.
 

컨트롤러

@PostMapping("/board/save") public String save(BoardRequest.SaveDTO requestDTO){ User sessionUser = (User) session.getAttribute("sessionUser"); boardReposiroty.save(requestDTO.toEntity(sessionUser)); return "redirect:/"; }

레파지토리

@Transactional public void save(Board board) { em.persist(board); //persist 는 이미 있는 것이기 때문에 junit 테스트 필요없을 것 같다. }
 
Share article

p4rksk