findermember.getname()에서 아직 프록시 객체가 초기화하지 않은 상태이기에 초기화 요청을 하여 DB조회 후 실제 멤버 엔티티를 생성하여 가져온다.
- 프록시 객체는 원본 엔티티를 상속받음, 따라서 타입 체크시 주의해야함 (== 비교 실패, 대신 instance of 사용) 서로 다른 객체를 find 와 getReference로 호출해서 비교하면 False이다.
서로 다른 멤버 객체를 가지고 find()는 엔티티 자체class가 나오고 gerReference()로는 프록시 class가 나온다. (서로 다른 타입!)
- 영속성 컨텍스트에 찾는 엔티티가 이미 있으면 em.getReference()를 호출해도 실제 엔티티 반환
한 트랜잭션 안에서는 어떻게 호출해도 JPA는 둘이 같은 것을 보장해준다.
영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화하면 문제 발생
(하이버네이트는 org.hibernate.LazyInitializationException 예외를 터트림)