728x90
반응형
조인 테이블
데이터베이스 테이블의 연관관계를 설계하는 방법
- 조인 컬럼 사용 (외래 키)
- 조인 테이블 사용
조인 테이블 사용
조인 테이블이라는 별도의 테이블을 사용해 연관관계를 관리한다
테이블을 하나 추가해야 한다
- 관리해야 하는 테이블이 늘어나고 조인 시 조인 테이블도 추가로 조인해야 한다
주로 다대다 관계를 일대다, 다대일로 풀어내기 위해 사용한다
- 일대일, 일대다, 다대일에서도 사용한다
일대일 조인 테이블
일대일 조인 테이블의 외래 키 컬럼 각각에 유니크 제약조건을 걸어야 한다
다대다 조인 테이블
조인 테이블의 두 컬럼을 합해서 하나의 복합 키에 유니크 제약조건을 걸어야 한다
엔티티 하나에 여러 테이블 매핑
@SecondaryTable을 사용하면 한 엔티티에 여러 개의 테이블을 매핑할 수 있다
@Entity
@Table(name="BOARD")
@SecondaryTable(name="BOARD_DETAIL",
pkJoinColumns=@PrimaryKeyJoinColumn(name="BOARD_DETAIL_ID"))
public class Board {
@Id @GeneratedValue
@Column(name="BOARD_ID")
private Long id;
private String title;
@Column(table="BOARD_DETAIL")
private String content;
...
}
Board 엔티티는 @Table을 이용해 BOARD 테이블과 매핑했고, @SecondaryTable을 사용해 BOARD_DETAIL 테이블을 추가로 매핑했다
@SecondaryTable 속성
- name: 매핑할 다른 테이블의 이름
- pkJoinColumns: 매핑할 다른 테이블의 기본 키 컬럼 속성
@SecondaryTables를 이용해 더 많은 테이블과 매핑할 수도 있다
항상 두 테이블을 함께 조회해 최적화하기 어려우므로 일대일 매핑을 권장한다
728x90
반응형
'스터디 > JPA' 카테고리의 다른 글
프록시와 연관관계 정리 - (2) (0) | 2025.02.13 |
---|---|
프록시와 연관관계 정리 - (1) (0) | 2025.02.13 |
고급 매핑 - (2) (0) | 2025.02.12 |
고급 매핑 - (1) (0) | 2025.02.11 |
다양한 연관관계 매핑 - (3) (0) | 2025.02.11 |