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

기팝님의 프로필 이미지

작성한 질문수

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

일대일 [1:1]

마지막 부분 즉시로딩

작성

·

604

1

일대일 양방향 관계에서 [17:40]

단점: 프록시 기능의 한계로 지연 로딩으로 설정해도 항상 즉시 로딩됨(프록시는 뒤에서 설명) 그림

---------------------------------

그러면 이그림과 비슷한

이것도 마찬가지로 Membe는즉시로딩으로만 가져오나요 ?

 

답변 5

1

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

2022. 01. 23. 22:10

안녕하세요. 기팝님 희선님

다음을 참고해주세요.

https://www.inflearn.com/questions/224187

https://www.inflearn.com/questions/179434

감사합니다.

1

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

2021. 11. 21. 22:19

안녕하세요. 기팝님

우선 잘 테스트해보셨습니다.

Q: 일대일  대상 테이블에 외래 키, 결과를 보시면 즉시 로딩이 된거 같은데...

-> LAZY로 설정을 했기 때문에 JOIN으로 한번에 가져오지 않습니다. 대신에 일대일의 한계로 인해서 MEMBER 조회 시점에 바로 추가 쿼리가 실행되어서 Locker도 가지고 옵니다. 만약 EAGER라면 join을 사용해서 한번에 조회하게 됩니다.

Q: 일대다 양방향

-> 이 부분은 정상 LAZY 처리가 되는 것이 맞습니다.

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

2021. 11. 22. 01:31

감사합니다.

 

'LAZY로 설정을 했기 때문에 JOIN으로 한번에 가져오지 않습니다. 대신에 일대일의 한계로 인해서 MEMBER 조회 시점에 바로 추가 쿼리가 실행되어서 Locker도 가지고 옵니다'

이 말씀이 저의 첫 질문인

일대일 양방향 관계에서 [17:40]

단점: 프록시 기능의 한계로 지연 로딩으로 설정해도 항상 즉시 로딩됨(프록시는 뒤에서 설명) 그림

이거 말씀이신거죠  ??

 

죄송합니다 영한님 테스트 결과를 토대로 하나만더 여쭈어보겠습니다 ㅠ

왜 1:1 일때만 프록시 기능의 한계로 지연 로딩으로 설정해도 항상 즉시 로딩됨 << 이런 현상이 나타는건가요 ?

[일대다 양방향 일떈 lazy 확인.]

1

기팝님의 프로필 이미지
기팝
질문자

2021. 11. 20. 04:17

안녕하세요 말씀 해 주신대로 테스트를  해보고 있습니다.

우선 일대일  대상 테이블에 외래 키 양방향일경우[양쪽다 Lazy 설정 했습니다.]

결과 :

결과를 보시면 즉시 로딩이 된거 같은데...

저는 inner join 으로 가져올거같았는데 따로 따로 쿼리를 두방을 날리는게 맞나요 ?

 

=============================

그리고 일대다 양방향[Lazy 설정]

결과 : 

일대다는 즉시로딩이아닌 lazy로딩이 된거같습니다.

제가 혹시 잘못한게 있을까요?

맞다면 왜 차이가 있는건가요 ㅠㅠ?

하나는 즉시,하나는 지연로딩

0

유희선님의 프로필 이미지

2022. 01. 21. 18:55

저도 궁금해요... 프록시 PK 설정때문에 @OneToOne 지연로딩이 안된다면,  일대다는 왜 lazy가 되는거죠 ㅠ_ㅠ???

0

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

2021. 11. 17. 23:01

안녕하세요 기팝님^^

제가 직접 정답을 알려드릴 수 도 있지만, 그러면 더 많은 것을 얻어가지 못합니다.

개발자는 궁금한 부분을 직접 코드로 테스트 해볼 때 가장 많이 배울 수 있습니다.

해당 부분을 코드로 직접 테스트해보시고, 그 결과를 공유해주세요. 그러면 함께 공부하는 분들께도 큰 도움이 될거에요.

그럼 테스트 해보시고 결과도 정리해서 공유 부탁드립니다.

감사합니다.

기팝님의 프로필 이미지

작성한 질문수

질문하기