강의

멘토링

커뮤니티

Inflearn Community Q&A

issiscv462218's profile image
issiscv462218

asked

Java ORM Standard JPA Programming - Basics

Value Type Collection

@joinColumn 질문입니다.

Resolved

Written on

·

260

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 엔티티가 되는건가요? 

감사합니다!

연관관계주인JPAjava

Answer 2

1

issiscv462218님의 프로필 이미지
issiscv462218
Questioner

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

yh님의 프로필 이미지
yh
Instructor

네 화이팅^^!

1

yh님의 프로필 이미지
yh
Instructor

안녕하세요. 상운님

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

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

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

감사합니다.

issiscv462218's profile image
issiscv462218

asked

Ask a question