다대일 단방향 정리
• 가장 많이 사용하는 연관관계
다대일 양방향 정리
• 외래 키가 있는 쪽이 연관관계의 주인
• 양쪽을 서로 참조하도록 개발
일대다 단방향 정리
• 일대다 단방향은 일대다(1:N)에서 일(1)이 연관관계의 주인
• 테이블 일대다 관계는 항상 다(N) 쪽에 외래 키가 있음
• 객체와 테이블의 차이 때문에 반대편 테이블의 외래 키를 관리하 는 특이한 구조
일대다 양방향 정리
• 이런 매핑은 공식적으로 존재X
• @JoinColumn(insertable=false, updatable=false)
• 읽기 전용 필드를 사용해서 양방향 처럼 사용하는 방법
• 다대일 양방향을 사용하자
일대일 정리
주 테이블에 외래 키
• 주 객체가 대상 객체의 참조를 가지는 것 처럼 주 테이블에 외래 키를 두고 대상 테이블을 찾음
• 객체지향 개발자 선호
• JPA 매핑 편리
• 장점: 주 테이블만 조회해도 대상 테이블에 데이터가 있는지 확인 가능 • 단점: 값이 없으면 외래 키에 null 허용
대상 테이블에 외래 키
• 대상 테이블에 외래 키가 존재
• 전통적인 데이터베이스 개발자 선호
• 장점: 주 테이블과 대상 테이블을 일대일에서 일대다 관계로 변경할 때 테이블 구조 유지
• 단점: 프록시 기능의 한계로 지연 로딩으로 설정해도 항상 즉시 로딩됨(프록시는 뒤에서 설명)
다대다 정리
• @ManyToMany 사용
• @JoinTable로 연결 테이블 지정
• 다대다 매핑: 단방향, 양방향 가능
실무에서는 거의 사용하지 않음
'프레임워크 > JPA' 카테고리의 다른 글
[JPA] 임베디드 타입 (1) | 2023.05.01 |
---|---|
[JPA] 프록시와 연관관계(즉시로딩, 지연로딩, 영속성 전이) (0) | 2023.04.29 |
[JPA] 상속관계 매핑 (0) | 2023.04.23 |
[JPA] 연관관계 매핑 (단방향, 양방향) (0) | 2023.04.02 |
[JPA] JPA 영속성 관리 (0) | 2023.03.05 |