JPA는 자바 ORM(Object Relational Mapping) 기술에 대한 API 표준이다.
ORM(Object Relational Mapping)은 객체와 관계형 데이터베이스를 매칭해주는 기술이다.
- 특정 데이터베이스에 종속되지 않음
- 객체지향적 프로그래밍
- 생산성 향상
- 복잡한 쿼리 처리
- 성능 저하 위험
- 학습 시간
엔티티(Entity)
: 데이터베이스의 테이블에 대응하는 클래스이다. 데이터베이스에 Product 테이블을 만들고, 이에 대응되는 Product.java 클래스를 만들어서 @Entity 어노테이션을 붙이면 이 클래스가 엔티티가 되는 것이다.
엔티티 매니저 팩토리
: 엔티티 매니저 인스턴스를 관리하는 주체이다. 애플리케이션 실행 시 한개만 만들어지며 사용자로부터 요청이 오면 엔티티 매니저 팩토리로 부터 엔티티 매니저를 생성한다.
엔티티 매니저
: 영속성 컨텍스트에 접근하여 엔티티에 대한 데이터베이스 작업을 제공한다. 내부적으로 데이터베이스 커넥션을 사용해서 데이터베이스에 접근한다.
영속성 컨텍스트
:엔티티를 영구 저장하는 환경으로 엔티티 매니저를 통해 영속성 컨텍스트에 접근한다.