작성
·
320
0
최근에 영한님 강의를 다시 한번 보고 있습니다.
지연로딩에서 궁금한 부분이 하나 생겼는데요.
Team 과 Member 로 양방향 연관관계를 설명해 주실 때,
위 코드에서 Member 의 select 절이 지연로딩으로 수행되고 안되고의 기준은 1차캐쉬에 값이 있고 없고라고 말씀해 주셨는데요.
그 1차 캐쉬의 기준이 조금 궁금해졌습니다.
em.persist 로 Team 을 저장했을 때도 Team 에 대한 1차 캐쉬는 존재할테고, em.clear 이후 em.findTeam 을 했을 때도 1차 캐쉬에는 값이 생성된 시점일텐데요..
그런데 전자에서는 getMember 의 지연로딩이 발생하지 않고 후자에서만 지연로딩이 발생하는 메커니즘이 좀 궁금해졌습니다. 제가 너무 어렵게 생각하는 걸까요? ㅎㅎ
답변 1
0
안녕하세요. 아리마님^^
전자는 내가 직접 객체를 생성했기 때문에, 이미 members 컬력션이 로딩이 되어 있는 상태입니다.
후자는 DB에서 조회할 때 team만 조회했기 때문에, 아직 members가 로딩이 안된 상태이지요^^
감사합니다.