OneToMany, ManyToOne 의존성 주입 질문입니다.
262
작성한 질문수 28
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
@Getter
public class Parent {
@Id
@Column(name = "parent_id")
private Long id;
@OneToMany(mappedBy = "parent")
private List<Child> childList = new ArrayList<>();
}
public class Child {
@Id
@Column(name = "child_id")
private Long id;
@ManyToOne
@JoinColumn(name = "parent_id")
private parent;
public Child(parent) {
this.parent = parent;
parent.getChildList().add(this);
}
}
child 를 생성 할때 양방향 의존성 주입을 위해
parent.getChildLIst().add(this) 를 해주는 데요 만약 childList 에 100만건이 있으면
생성을 할때 마다 100만건을 조회 하게 될것 같은데 문제가 없을까요?
답변 1
0
안녕하세요. d1215님
이런 경우 문제가 됩니다. 그래서 이런 경우에는 양방향 연관관계를 사용하지 않습니다.
감사합니다.
0
직접 답변해 주셔서 정말 감사합니다!!
그렇다면 이렇게 되는 경우 무조건 단방향으로 설정을 해줘야 하는걸까요?
아니면 무조건 parent 가 존재한다는 가정하에 child 를 생성할때 아래 처럼
child 에만 parent에 의존성 주입을 해주면 문제가 없을까요?
@Getter
public class Parent {
@Id
@Column(name = "parent_id")
private Long id;
@OneToMany(mappedBy = "parent")
private List<Child> childList = new ArrayList<>();
}
public class Child {
@Id
@Column(name = "child_id")
private Long id;
@ManyToOne
@JoinColumn(name = "parent_id")
private parent;
public Child(parent) {
this.parent = parent;
}
}
0
한쪽 방향이 100만건 정도 되는 경우라면 단방향으로 설정해주셔야 합니다. 혹시라도 반대쪽을 조회하게 되면 OOM이 발생할 수 있습니다. (하지만 해당 ID에 한정해서 조회하기 때문에 실제 이런 경우는 거의 없겠지요?)
참고로 JPA는 양방향 연관관계가 있는 경우 연관관계의 주인이 아닌쪽에 데이터를 넣지 않아도, 반대쪽을 조회할 수 있습니다.(양방향 연관관계 부분을 복습해주세요.)
감사합니다.
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
54
2
inheritance startegy 선택시 고려사항
0
36
1
Entity 동등성 비교
0
38
1
실무 조언 관련 질문입니다.
0
64
1
H2데이터베이스 파일 생성
0
76
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
66
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
62
1
JPQL 메소드와 락
0
62
1
Delivery @OneToOne
0
70
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
104
2
UnsupportedOperationException 발생
0
97
3
H2 Database 연결이 안됩니다.
0
101
2
연관관계 매핑 질문드립니다.
0
93
2
h2데이터베이스 실행오류
0
114
2
persistence.xml
0
119
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
87
1
영속성 컨텍스트
0
74
1
JPA 프록시
0
105
1
Native Query와 MyBatis
0
81
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
97
1
임베디드 타입 예시 코드 관련 질문
0
125
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
100
3
인텔리제이 패키지 커서 단축키 질문
0
112
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
151
1





