해결된 질문
작성
·
210
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 강의를 다시 들어보시면 더 확실히 이해가 되실거에요.
감사합니다.
네 화이팅^^!