JPA에서 가장 중요한 2가지
- 객체와 관계형 데이터베이스 매핑하기 (Object Relation Mapping)
- DB를 어떻게 설계하고 객체를 어떻게 설계해서 중간에 어떻게 JPA로 쓸지 매핑하는 설계와 관련된 정적인 부분
- 영속성 컨텍스트
- 실제 JPA가 내부에서 어떻게 동작하는지 관련된 부분
엔티티 매니저 팩토리와 엔티티 매니저

웹 애플리케이션을 개발한다고 할 때, EntityManagerFactory를 통해서 고객의 요청이 올 때마다 EntityManager를 생성합니다.
EntityManager는 내부적으로 데이터 커넥션을 사용해서 DB를 사용하게 됩니다.
영속성 컨텍스트
- JPA를 이해하는데 가장 중요한 용어
- "엔티티를 영구 저장하는 환경"이라는 뜻
- EntityManager.persist(entity);
- EntityManager에서 persist를 호출해서 entity를 집어넣으면 DB에 저장한다고 배웠는데 실제로는 깊은 내용들이 있습니다.
- 사실은 DB에 저장한다는게 아니라 영속성 컨텍스트를 통해서 entity를 영속화한다는 뜻입니다.
- 더 정확하게 말하면 persist 메서드는 DB에 저장하는게 아니라 entity를 영속성 컨텍스트에 저장한다는 것입니다.
엔티티 매니저? 영속성 컨텍스트?
- 영속성 컨텍스트는 논리적인 개념입니다. 눈에 보이지 않습니다.
- 엔티티 매니저를 통해서 영속성 컨텍스트에 접근합니다.
엔티티의 생명주기