member1("john") 엔티티를 생성후 저장 

john 엔티티의 이름 james 로  update 진행 

member1의 이름이 james로 반영되었는지 확인하였지만 실패하였습니다. 바뀌기전의 그대로 john 이었습니다.


 DB에는 james 로 잘 반영이 되었지만 결과를 확인하고, 이유를 찾아본 결과 jpa update 는 영속성 컨텍스트를 거치지 않고 DB직접 날린다고 나와있네요..


자 그렇다면 update 후 select를 해봅시다. 이번에도 이름이 바뀌지 않은 엔티티가 조회되었습니다.


이유를 찾아보았습니다.. 영속성컨텍스트안에 동일한 엔티티가 존재할경우 DB를 거치지 않고 영속성 컨텍스트에서 1차 캐싱을 하여 해당 엔티티를 가져온다고 하는군요.


왜 최신화된 엔티티를 가져오지 않을까에 대한 의구심을 품었습니다. 

"엔티티의 동일성 보장" 이 이유라고 하는군요 어렵습니다. 혹시 이 동일성 보장이라는 개념을 어떻게 이해해야 할까요 


여기서 궁금증은 직접 db로 update 한후에 최신화 된 엔티티를 왜 다시 영속성 컨텍스트에 넣지 않는가 ? (기존 엔티티 삭제하고) 
애초에 이 질문 자체가 잘못된 것 같기도 하군요 update하기위해선 영속성 컨텍스트를 비우고 날려야 한다로 생각해야 하는지 생각이 복잡해집니다.