항상 공부를 할때는 “이걸 왜 써야지???”를 명확히 알아야 한다.
데이터베이스에 em.flush(); 하고 em.clear(); 하면 완전 깔끔해진다.
이러면 영속성 컨텍스트가 거의 이제 처음 다시 시작하는 것이다. (app 거의 다시 띄운 것처럼) 이 상태에서 em.find를 하면 멤버의 기존에 저장했던 멤버 아이디를 가져와서 bindMember 한 다음에 찍어서 출력해보면 알 수 있다.
→ 어떻게? → getReference()를 같이 쓰면서 찍은 것을 보면, JPA가 이걸 내가 실제 유저네임을 찍어 이 GetUserName을 호출하는 시점에 JPA가 DB에 쿼리를 날림.
그래서 username을 find 멤버의 값(findMember.username
)을 채운 다음에 이것을 출력한다.