💡 @ManyToOne, @OneToMany 어떻게 해야될까?
- @OneToMany는 @ManyToOne(fetch = FetchType.LAZY)이 없으면 존재할 수 없다. (이건 필수 규칙이므로) → ManyToOne부터 일단 넣고 생각하기
- @ManyToOne(fetch = FetchType.LAZY) 더 개수가 많은 엔티티에 건다.
- ex) 댓글 vs 게시글 → 댓글에 달아야합니다.
N:M은 중간테이블 필요하다. (리스트를 필드에 선언할 수 없기 때문에)중간테이블에 @ManyToOne(fetch = FetchType.LAZY) 2개 선언.일단은 어려우므로 다음에 추가 설명
- @ManyToOne에게 무조건 해야되는거
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = “아래 지정클래스 변수명(상대방)_id”, nullable = false)
- @OneToMany 무조건 해야되는거
- @OneToMany(mappedBy = “상대방 클래스에 있는 나의 필드 변수명”)
결론: @ManyToOne 하나만 알면 된다.
일단.. 1:N인 것 같은데…혹은 N:M…?!
일단 연관관계는 걸어야하니까…
→ 뭐가 됐든 간에 @ManyToOne 쓰자~
📌N:M 다대다 연관관계
N:M 또한 @ManyToOne 만으로 모두 해결할 수 있다.
문제를 단순화하여 손쉽게 개발을 해보자.

-간단한 도서 관리 시스템 구현
- 도서(Book), 저자(Author), 사용자(User) 정보를 관리
-학습 목표
- 객체 간 관계를 매핑하는 방법을 이해한다.
- JPA에서 1:1, 1:N, N:M 관계를 어떻게 매핑하는지 배운다.
- N:M 매핑 시 매핑 테이블을 어떤 식으로 활용하는지 경험해본다.
- 실제 프로젝트에 적용할 수 있는 CRUD API를 구현한다.
- Restful API를 설계 및 구현한다.
-요구사항
- 도서(Book), 저자(Author), 이용자(User) 엔티티를 생성
- 도서와 저자 간의 다대다(N:M) 관계를 구현 - 매핑 테이블(BookAuthor)을 사용하여 매핑
- 도서와 이용자간의 (N:1) 관계 구현
- 각 엔티티에 대한 CRUD 작업을 수행하는 레포지토리와 서비스를 구현



'개발 > 부트캠프' 카테고리의 다른 글
본캠프 : JwtFilter - ArgumentResolver 실습 2(OncePerRequestFilter) (0) | 2025.03.14 |
---|---|
본캠프 : QueryDSL (0) | 2025.03.13 |
본캠프 : 테이블 객체끼리 관계만들기 1 (0) | 2025.03.12 |
본캠프 : AOP(Aspect-Oriented Programming) (0) | 2025.03.12 |
본캠프 : JwtFilter - ArgumentResolver 실습 1 (0) | 2025.03.11 |