해결된 질문
작성
·
254
0
그간 안녕하세요. 오랫만에 또 궁금증이 생겼습니다.
코드 일단 보시면 refMember.getId() 부분을 유심히 봐주세요.
--- Code
refMember = em.getReference(
Member.class, member.getId());
// 1) Proxy 클래스명 출력
System.out.println("refMember" +
refMember.getClass().getSimpleName());
em.detach( refMember );// EM 디테치
// 2) 멀쩡히 ID를 가져오는 의문의 코드
System.out.println(
"refMember.getId() = " + refMember.getId()); <<<<
// 3) 예외발생
System.out.println(
"refMember.getName() = " + refMember.getName());
--- Console
1)
refMember = Member$HibernateProxy$FhjIPWoc
2) 의문입니다..
refMember.getId() = 1
트랜젝션-----------------------Rollback !!!
3)
~~~~~예외발생~~~~
~~~~~~~~~~~~~~~
getName() 을 호출하면 예외가 발생하고
getId() 는 호출이 되는 이 기이한 현상을 설명해 주실수 있으신가요?
아직 배우지 않은 부분이라면 , 차분히 시청을 이어나가겠습니다^^