해결된 질문
작성
·
296
1
강의에서 39분 쯤에 em.detach(), em.close()는 왜 프록시가 초기화가 안되는지 이해했습니다.
근데 em.clear()는 단순히 영속성 컨텍스트를 비우는 것으로 아는데
원래 프록시가 영속성 컨텍스트에 초기화 요청을 하고 없으면 DB에 조회를 해서 실제 Entity를 target으로 가져오는 것으로 이해를 했는데 em.clear()로 비워져있다고 refMember.getUsername()이 왜 안되는 것인지 이해가 가질 않았습니다. 그래서 생각해본 결과 질문이 있습니다.
Q. 혹시 프록시 초기화를 요청하는 과정이 em.getReference()로 조회를 하면
그때 이미 프록시 객체가 진짜 객체 대신에 영속성 컨텍스트에 보관되고 뒤에 refMember.getUsername()이나 기타 다른 초기화 요청이 올 때 영속성 컨텍스트에서 DB로 조회해서 실제 객체를 프록시 내부로 들이는 것인가요...?