인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

relate16님의 프로필 이미지
relate16

작성한 질문수

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

양방향 연관관계와 연관관계의 주인 1- 기본

mappedBy로 조회할 때 질문.(프록시의 관계)

해결된 질문

작성

·

187

0

저어어쪽 Querydsl 강의 초반부 듣다가 

갑자기 프록시에 대한 개념(지연로딩)으로 인해 생긴 

mappedBy의 의문점으로 이리저리 고생 끝에

확인차 이 강의로 와서 질문 드립니다 . 

@Entity
@Getter @Setter
public class TestTeam {

@Id @GeneratedValue
@Column(name="TESTTEMA_ID")
private Long id;

private String name;

@OneToMany(mappedBy = "team")
private List<TestMember> members = new ArrayList<>();
}
@Entity
@Getter @Setter
public class TestMember {
@Id @GeneratedValue
@Column(name = "TESTMEMBER_ID")
private Long id;

private String name;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "TESTTEAM_ID")
private TestTeam team;
}

일 때,

@Test
public void test() {
TestTeam teamA = new TestTeam();
teamA.setName("teamA");
em.persist(teamA);

 처럼 em.persist(teamA)를 하면

1차 캐시에 

{id = 1(예시), name = "teamA", List<TestMember> members = 프록시} 로 저장되는게 아니라

{id = 1(예시), name = "teamA", List<TestMember> members = null} 로 저장되고 

 

조회할 때 1차 캐시에, 

{id = 1(예시), name = "teamA", List<TestMember> members = 프록시} 로 저장되는 거죠 ?

 

뭔가 풀고 나니 바보같은 질문인 것 같기도 하고..그런데

확인차 질문드립니다 :[

답변 1

2

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

안녕하세요. relate16님

맞습니다^^

relate16님의 프로필 이미지
relate16
질문자

매번 감사합니다 . :]

relate16님의 프로필 이미지
relate16

작성한 질문수

질문하기