EntityManager
- 매 요청마다 (=스레드 하나 생성마다) Entity Manager 생성 (by EntityManagerFactory)
- 이 EntityManager은 내부적으로 DB 커넥션 풀을 이용해 DB에 접근함
영속성 컨텍스트
- 엔티티를 영구 저장하는 환경
- EntityManager.persist(entity);
- 원래 persist(object) → DB에 object data 저장하는 것
- But 실제로는 DB 저장X, 영속성 컨텍스트에 저장 → DB 저장 순서를 거친다
- 언제 DB 저장? Transactional 해당 스레드가 끝나고 commit일 때!
- 영속성 컨텍스트에 저장 = 엔티티를 영속화시킴
- 영속성 컨텍스트는 논리적 개념 ∴ EntityManager로 영속성 컨텍스트에 접근함
엔티티 생명주기

영속 (managed) / 비영속 (new, transient)
준영속 (detached)
- 엔티티가 영속성 컨텍스트에 저장 → 분리된 상태
삭제 (removed)
영속성 컨텍스트의 이점
1차 캐시