반응형
저번에는 홍길동이라는 이름으로 글쓴이로 작성되었다.
이제는 user와 board를
일대 다로 하여 글을 쓰면 글쓴이로 등록되게 해보자
우선 user_id를 조인한다고 생각하자
그 후 모델 객체에 어노테이션을 추가하자
import lombok.Data;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
@Entity
@Data
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@NotNull
@Size(min = 2,max = 30 , message = "제목은 2자이상 30자 이하 입니다.")
private String title;
@NotNull
@Size(min = 1, message = "내용을 입력해주세요.")
private String content;
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
}
그 후 글을 쓰려면
인증정보를 가져와야한다.
@PostMapping("/form")
public String postForm(@Valid Board board, BindingResult bindingResult , Authentication authentication){
// vaildator.validate(board,bindingResult);
if(bindingResult.hasErrors()){
return "board/form";
}
String username = authentication.getName();
boardService.save(username,board);
// boardRepository.save(board);
return "redirect:/board/list";
}
}
String username = authentication.getName();
로 인증정보를 가져올 수있다.
@Autowired
private BoardRepository boardRepository;
@Autowired
private UserRepository userRepository;
public Board save(String username , Board board){
User user = userRepository.findByUsername(username);
board.setUser(user);
return boardRepository.save(board);
}
그 후 서비스로 넘어와 save() 메소드를 작성 해준다.
유저 레포지토리에서 유저를 먼저 찾아 board.setUser에 담아준다.
그 후 save(board)를 해주면 된다.
홍길동에서 변경된걸 볼 수 있다.
반응형
'Spring Boot > Restful-Api + Spring Boot' 카테고리의 다른 글
스프링 시큐리티를 이용한 로그인 처리 (0) | 2022.06.18 |
---|---|
스프링 시큐리티를 이용한 회원가입 처리 (0) | 2022.06.18 |
스프링부트 타임리프 벨리데이션 체크를 해보자 (0) | 2022.06.15 |
Restful-API연습 (10) REST API Monitoring을 위한 Actuator 설정 (0) | 2022.06.12 |
RestFul API 연습(9) Swagger 사용 (0) | 2022.06.04 |