본문 바로가기
JPA

다양한 연관관계 매핑

by ppirae 2022. 5. 16.

다대일 [N:1]

@ManyToOne

다대일 단방향 -> 가장 많이 사용, 다대일의 반대는 일대다

다대일 양방향 -> 외래 키가 있는 쪽이 연관관계의 주인, 양쪽을 서로 참조하도록 개발


일대다 [1:N]

@OneToMany

( 이 모델은 권장하지 않음. 실무에서 거의 사용하지 않음. )

일대다 단방향 -> 일(1)이 연관관계의 주인, 테이블 일대다 관계는 다(N)쪽에 외래 키가 있음

일대다 단방향 단점 -> 엔티티가 관리하는 외래 키가 다른 테이블에 있음, 일대다 단방향 매핑보다는

                              다대일 양방향 매핑을 사용하자

 

일대다 양방향 -> 공식적으로 존재 X, @JoinColumn(insertable=false, updatable=false)

                        다대일 양방향 매핑을 사용하자


일대일 [1:1]

@OneToOne

일대일 관계는 그 반대도 일대일

일대일 단방향 -> 다대일 단방향 매핑과 유사

일대일 양방향 -> 한곳에 mappedBy 잡아줄것


다대다 [N:M]

@ManyToMany

@JoinTable로 연결 테이블 지정

 

다대다 매핑의 한계

  • 편리해 보이지만 실무에서 사용 X
  • 연결 테이블이 단순히 연결만 하고 끝나지 않음
  • 주문시간, 수량 같은 데이터가 들어올 수 있음

다대다 한계 극복

@ManyToMany -> OneToMany, @ManyToOne 


인프런 김영한님의 JPA 기본편을 듣고 작성한 글입니다.

https://inf.run/87Mz

 

자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런

www.inflearn.com

 

'JPA' 카테고리의 다른 글

프록시와 연관관계 (즉시로딩, 지연로딩)  (0) 2022.07.02
상속관계 매핑  (0) 2022.06.29
연관관계의 주인과 주의점  (0) 2022.05.14
JPA 연관관계 매핑 기초  (0) 2022.05.13
JPA 엔티티 매핑  (0) 2022.05.11

댓글