엔티티 조회 영속성 컨텍스트는 내부에 캐시를 가지고 있는데 이것을 1차 캐시라 한다. 영속 상태의 엔티티는 모두 이곳에 저장된다. 쉽게 이야기하면 영속성 컨텍스트 내부에 Map이 하나 있는데 키는 @Id로 매핑한 식별자고 값은 엔티티 인스턴스다. //엔티티를 생성한 상태 (비영속) Member member = new Member(); member.setId("member1"); member.setUsername("회원1"); //엔티티를 영속 em.persist(member); 이 코드를 실행하면 다음과 같이 1차 캐시에 회원 엔티티를 저장한다. 회원 엔티티는 아직 데이터베이스에 저장되지 않았다. 이번에는 엔티티를 조회해보자. Member member = em.find(Member.class, "memb..
엔티티 매니저 팩토리와 엔티티 매니저 엔티티 매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 처리한다. 이름 그대로 엔티티를 관리하는 관리자다. 데이터 베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. 다음은 엔티티 매니저 팩토리를 생성하는 코드다. //공장 만들기, 비용이 아주 많이 든다. EntityManagerFactory emf = Persistence.createManagerFactory("jpabook"); 이제는 필요할 때마다 엔티티 매니저 팩토리에서 엔티티 매니저를 생성하면 된다. //공장에서 엔티티 매니저 생성, 비용이 거의 안든다. EntityManager em = emf.createEnt..