BoardRepository save 메서드 구현하기
목표: Board 엔티티를 데이터베이스에 저장하는 save 메서드를 구현합니다.
BoardRepository 코드 추가
// em.persist(board) -> 비영속 상태인 엔티티를 영속상태로 전환
@Transactional
public Board save(Board board) {
em.persist(board);
return board;
}
BoardDTO
package com.tenco.blog_v1.board;
import com.tenco.blog_v1.user.User;
import lombok.Data;
public class BoardDTO {
@Data
public static class SaveDTO {
private String title;
private String content;
public Board toEntity(User user) {
return Board.builder()
.title(title)
.content(content)
.user(user)
.build();
}
}
}
BoardController 코드 수정
// 게시글 저장
// 주소설계 - http://localhost:8080/board/save
@PostMapping("/board/save")
public String save(@ModelAttribute BoardDTO.SaveDTO reqDto) {
User sessionUser = (User) session.getAttribute("sessionUser");
if(sessionUser == null) {
return "redirect:/login-form";
}
// 파라미터가 올바르게 전달 되었는지 확인
log.warn("save 실행: 제목={}, 내용={}", reqDto.getTitle(), reqDto.getContent());
// boardNativeRepository.save(title, content);
// SaveDTO 에서 toEntity 사용해서 Board 엔티로 변환하고 인수 값으로 User 정보 정보를 넣었다.
// 결국 Board 엔티티로 반환이 된다.
boardRepository.save(reqDto.toEntity(sessionUser));
return "redirect:/";
}
@ModelAttribute 와 @RequestBody 에 대한 차이점을 이해하자
'Spring boot > 개념 공부' 카테고리의 다른 글
게시글 수정 하기 (0) | 2024.10.20 |
---|---|
게시글 삭제 (1) | 2024.10.20 |
로그인 & 로그아웃 구현하기 (0) | 2024.10.20 |
게시글 목록보기 (Post List View) (0) | 2024.10.20 |
Mustache 란 뭘까? (0) | 2024.10.07 |