이게 보통 헷갈리는 것이 아니다.
고로, 앞으로는 헷갈리지 않게 아래를 충분히 숙지를 해두고, [1:다] 혹은 객체 안에 컬렉션이 있는 경우
어떻게 [데이터 중복] 문제가 발생하는지 바로 바로 떠올릴 수 있게 하자.
@Entity
class Team{
@Id@GeneratedValue
private id;
// 이것이 [1:다] 관계를 만든다
@OneToMany
List<Member> members;
}
JPQL : "SELECT t FROM Team t"
-> DB Table에는 Team Table, Member Table이 있어서,
JOIN 연산을 한다.
팀A에 대해서 Member Table에는 2개의 Member(memberA,memberB라고 하자)가 존재한다.
그럼, DB 사이드에서는 2개의 ROW가 발생을 한다.
그게 애플리케이션으로 반환을 하게 되면, 아래와 같은 참조 관계가 생긴다.
Stack영역의 [참조변수 값 2개]가 1개의 팀A 객체를 가리키며, 그 팀A 객체는 <[memberA,memberB[>가 포함된
List를 가리키고 있다.
-> 이 참조변수 값 2개를 보고, [데이터 뻥튀기], [데이터 중복]이라고 부른다.
'CS 잡지식' 카테고리의 다른 글
H2 설치 시, 주의 사항(매우 중요) (0) | 2023.05.07 |
---|---|
Spring 3.X.X에서의 변경 사항 (0) | 2023.05.07 |
순환 참조 문제 (0) | 2023.05.05 |
컬렉션(Collection) 조회 전략 2가지 (0) | 2023.05.05 |
batch_size의 설정 TIP!!(batch_fetch_size, @BatchSize) (0) | 2023.05.05 |