리포지토리 작성
@Transactional
public void save(Board board) {
em.persist(board);
}
테스트 생략(persist는 내가 만든게 아니라 제공되는 프레임워크라 테스트 할 필요 없을거 같다)
dto 작성
<aside> 💡
ORM으로 인설트 할 때, 유저 객체에 아이디만 들어 있어도 된다. 즉 비영속 객체도 된다.
</aside>
package shop.mtcoding.blog.board;
import lombok.Data;
import shop.mtcoding.blog.user.User;
public class BoardRequest {
@Data
public static class saveDTO {
private String title;
private String content;
// dto 를 클라이언트로 부터 받아서 pc(퍼시스트 컨텍스트)에 전달하기 위해 사용
public Board toEntity(User user) {
return Board.builder()
.title(title)
.content(content)
.user(user).build();
}
}
}
toEntity는 인설트 할 때만 만들어서 쓴다.
컨트롤러 작성
private final HttpSession session;
@PostMapping("/board/save")
public String save(BoardRequest.saveDTO requestDTO) {
User sessionUser = (User) session.getAttribute("sessionUser");
boardRepository.save(requestDTO.toEntity(sessionUser));
return "redirect:/";
}
