56. PC를 이용한 게시글쓰기
Mar 18, 2024
View 확인

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