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

김상운님의 프로필 이미지
김상운

작성한 질문수

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

값 타입 컬렉션

@joinColumn 질문입니다.

해결된 질문

작성

·

215

1

안녕하세요 선생님.

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "member_id")
private List<AddressEntity> addressEntities = new ArrayList<>();

이 코드에 대해 질문이 있습니다!

 제가 이해한 바로는 @JoinColumn은 1 대 다 관계에서 다에 위치해 있어 해당 엔티티에 외래키 속성 값을 매핑 하는걸로 이해를 했습니다. 아래와 같은 양방향 연관관계 코드처럼요.

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;

질문

1.  @JoinColumn 어노테이션은 꼭 다  에 위치해 있지 않아도 되나요?

2. 아니면 단방향인 경우만 1의 위치에 있어도 되는 건가요?

3. 맨 위의 코드처럼 단방향인 경우 연관관계의 주인은 mappedBy의 속성이 없기에  member 엔티티가 되는건가요? 

감사합니다!

답변 2

1

김상운님의 프로필 이미지
김상운
질문자

뭔가 놓친 부분이 있다고 생각했는데,, 역시나! 감사합니다 방금 복습하고 왔습니다!^^

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

네 화이팅^^!

1

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

안녕하세요. 상운님

일대다 단방향 연관관계의 경우에 예외적으로 일이 있는 곳에 @JoinColumn을 둘 수 있습니다.

잘 생각해보면 단방향이기 때문에 반대쪽에 @JoinColumn을 둘 수 있는 곳이 없습니다!

다양한 연관관계 1:N 강의를 다시 들어보시면 더 확실히 이해가 되실거에요.

감사합니다.

김상운님의 프로필 이미지
김상운

작성한 질문수

질문하기