1. View 확인

클라이언트에게 데이터를 전달받기 위해 DTO를 입력받는다.
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
메서드를 사용할 수 있어 훨씬 편리하다.2. 컨트롤러
@PostMapping("/board/save")
public String save(BoardRequest.SaveDTO requestDTO){
User sessionUser = (User) session.getAttribute("sessionUser");
boardReposiroty.save(requestDTO.toEntity(sessionUser));
return "redirect:/";
}
3. 레파지토리
@Transactional
public void save(Board board) {
em.persist(board);
//persist 는 이미 있는 것이기 때문에 junit 테스트 필요없을 것 같다.
}
Share article