부트캠프 기록/Section3

[Spring MVC] JPA 연관관계 매핑

bbangduck 2022. 11. 3. 00:36

1. @ManyToOne(단방향/양방향)

외래키에 해당하는 객체 참조를 가지고 있는 자연스러운 방식

@JoinColumn(name ="")

양방향을 원한다면 @OneToMany 추가

 

 

2. @OneToMany

단독으로 잘 사용하지 않음

 

이유는 아래 블로그 참고

https://wwlee94.github.io/category/blog/spring-jpa-one-to-many-save-issue/

 

[Spring JPA] 1:N 관계 엔티티 save시 update 쿼리가 추가로 발생하는 이슈

개요 ‘Party-ing’ 프로젝트를 진행하던 도중 관계를 가지는 엔티티를 Save 할 때 2개의 테이블에 데이터는 잘 생성되었으나 Save 쿼리문 뿐 아니라 Update…

wwlee94.github.io

 

3. @ManyToMany

단독으로 잘 사용하지 않음

  • One(N:1 or 1:N)이 존재하지 않으면 FK로 쓰일 PK를 구하기가 어려움
  • 하이버네이트에 의해 생성된 중간 테이블은 관계 설정에 필수적으로 필요한 정보들만 담겨있을 뿐 이러한 비즈니스 로직상 필요한 정보들은 담기지 않음

참고

https://codeung.tistory.com/254

 

@ManyToMany를 사용하면 안 되는 이유

다대다 관계의 경우 그대로 사용하지 못하고 반드시 정규화를 통해 중간 테이블을 만들어줘야 한다. 이러한 관계가 있을 때 반드시 중간 중간 테이블을 두어 일대다+다대일 형태로 변형해줘야

codeung.tistory.com