[참고] '백견불여일타 - 스프링 부트 쇼핑몰 프로젝트 with JPA' 책을 참고하여 작성된 글입니다!
https://product.kyobobook.co.kr/detail/S000001624717
1. 연관 관계 매핑
- 일대일 (1:1) : @OneToOne
- 일대다 (1:N) : @OneToMany
- 다대일 (N:1) : @ManyToOne
- 다대다 (N:M) : @ManyToMany
2. 개인 프로젝트 적용 예시
한 사용자는 여러 개의 게시글을 작성할 수 있기 때문에 @ManyToOne을 적용하였다
* 이때 User 엔티티를 그대로 받아야 하는지 모르고 String으로 사용자 아이디만 받아서 오류가 발생했다
그래서 controller에서 userService에 구현한 getUserByUserId 함수를 통해 입력받은 user 아이디를 통해 User 엔티티 객체를 반환하고, dto를 엔티티로 변환하는 함수에 같이 넘겨주었다
게시글의 제목, 내용은 dto에서 넘겨받고, 매개변수로 받은 user 객체를 set 한다
데이터베이스에도 제대로 저장이 되는 것을 확인할 수 있다
→ 일단 내 생각에는 이게 최선인데 나중에 코드가 더 추가되면 복잡해질 것 같기도 해서 더 좋은 방법을 생각해 봐야 할 것 같다ㅜ
'SpringBoot' 카테고리의 다른 글
[Spring boot] BCryptPasswordEncoder 사용할 때마다 인코딩 결과가 달라질 때 (0) | 2023.08.02 |
---|---|
[Spring boot] 게시글 수정 기능 구현하면서 발생한 오류 정리 (0) | 2023.07.26 |
[Spring boot] @RestController 정리 (0) | 2023.07.16 |
[Springboot] No property xxx found for type xxxx! 에러 (2) | 2023.07.13 |
[Springboot] IntelliJ _compiler.automake.allow.when.app.running 적용하기 (0) | 2023.05.17 |