본문 바로가기
프레임워크/JPA

[JPA] 일대다( 1:N) 연관관계

by Yikanghee 2022. 3. 17.

JPA에서 대부분 다대일 ( N:1)를 많이 사용하지만 일대다 연관관계도 필요하니 알아보도록하자

JPA에서 주인 설정은 매우 중요한 요소이다

테이블 일대다 관계는 항상 다(N)쪽에 외래 키가 있고, 객체와 테이블의 차이 때문에 반대편 외래 키를 

관리하는 특이한 구조이다. 그래서 @JoinColumn을 꼭 사용하거나 조인 테이블 방식을 사용해야 한다

 

일대다 매핑에는 단방향 매핑과 양방향 매핑이 있다

| 단방향 매핑의 단점

- 엔티티가 관리하는 외래키가 다른 테이블에 있음 (특이한 구조)

- 연관관계 관리를 위해 추가로 UPDATE SQL 실행 (비효율)

※ 일대다 단방향 매핑보다는 다대일 양방향 매핑을 사용하자 

| 일대다 양방향 매핑

- 이런 매핑은 공식적으로 존재하지 않는다

- @JoinColumn(insertable=false, updatable=false)을 사용해야 오류가 안생긴다

- 읽기 전용 필드를 사용해서 양방향 처럼 사용하는 방법

※ 다대일 양방향을 사용하자


이 글은 김영한님의 JPA강의를 보고 공부한 글입니다

댓글