영속성 컨텍스트의 1차 캐시1차 캐시는 Map 형태로 관리된다.이는 Hibernate의 PersistenceContext 의 구현체인 StatefulPersistenceContext 에서 찾아볼 수 있다.entitiesByKey 필드 등을 보면 PK를 Key로 Object(엔티티)를 value로 관리하는 것을 볼 수 있다. 그리고 이 Key는 기본키를 저장한다따라서 findById가 호출되면 내부적으로 우선 Map을 확인해 엔티티가 존재하는 지 확인하며, 있으면 Map에서 반환한다. 없으면 DB를 조회하여 Map 저장하고 엔티티를 반환한다. 만약 findByName() 등을 통해 조회하면 Name은 기본키가 아니므로 DB에서 조회해오게 된다. DB에서 조회해온 후에는 조회한 ID를 통해 같은 엔티티가 영..