인프런 커뮤니티 질문&답변

열심히들어요님의 프로필 이미지
열심히들어요

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

양방향 연관관계와 연관관계의 주인 1- 기본

연관관계 의문점

작성

·

220

1

만약 join이 3개,4개 일어나게 된다면 혹은 self join 시에는 어떻게 연관관계의 주인을 설정하나요??

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. jooseongho95님

연관관계의 주인은 외래 키가 있는 곳으로 잡으시면 됩니다. 따라서 조인이 발생하는 숫자와는 무관합니다.

추가로 JPA에서 복합키의 경우 묶어서 하나로 생각하시면 됩니다.

복합키에 대한 내용은 JPA 책 7.3 복합 키와 식별 관계 매핑을 참고해주세요.

self join시에는 연관관계의 주인이면서 동시에 주인이 아니게 됩니다.

활용1편에서 가져왔는데, 다음 예시를 보시면 이해가 되실거에요.

package jpabook.jpashop.domain;

import jpabook.jpashop.domain.item.Item;
import lombok.Getter;
import lombok.Setter;

import javax.persistence.*;
import java.util.ArrayList;
import java.util.List;

import static javax.persistence.FetchType.*;

@Entity
@Getter @Setter
public class Category {

@Id @GeneratedValue
@Column(name = "category_id")
private Long id;

private String name;

@ManyToOne(fetch = LAZY)
@JoinColumn(name = "parent_id")
private Category parent;

@OneToMany(mappedBy = "parent")
private List<Category> child = new ArrayList<>();

//==연관관계 메서드==//
public void addChildCategory(Category child) {
this.child.add(child);
child.setParent(this);
}

}

감사합니다.

열심히들어요님의 프로필 이미지
열심히들어요

작성한 질문수

질문하기