엔티티 (Entity)
@Entity 어노테이션이 달린 클래스.
데이터베이스의 테이블과 매핑되는 클래스.
엔티티 매니저 (EntityManager)
- 엔티티와 관련된 모든 작업을 처리한다. ( 엔티티 등록, 조회, 수정, 삭제)
- 엔티티를 관리하는 가상의 데이터베이스로 볼 수 있다.
엔티티 매니저 생성 과정
1. Persistence 클래스가 META/INF 하위의 persistence.xml 파일에서 설정 정보를 조회한다.
2. 조회한 정보를 기반으로 EntityManagerFactory를 생성한다. (생성 비용이 크기 때문에 한번만 생성해서 공유해 사용함)
3. EntityManagerFactory 객체가 EntityManager 객체를 생성한다. (생성 비용이 매우 적다)
4. 생성된 EntityManager가 JPA 기능을 제공한다.
앤티티 매니저는 DB 커넥션과 밀접한 영향이 있으므로, 동시성 문제가 발생할 수 있다. 따라서 스레드 간에 공유하거나 재사용하지 않는다.
반대로, 엔티티 매니저 팩토리는 여러 스레드간 공유해도 안전하다.
영속성 컨텍스트 (Persistence Context)
: 엔티티를 영구 저장하는 환경. (논리적 개념)
- 엔티티 매니저에 엔티티를 등록하거나 저장하면, 엔티티 매니저는 이 엔티티를 영속성 컨텍스트에 보관해서 관리한다.
'Programming 프로그래밍 > JPA' 카테고리의 다른 글
| [JPA] JPA 프로젝트 구조, 설정하기 (0) | 2024.05.02 |
|---|---|
| [JPA] JPA 환경설정/ 엔티티 만들기 + MariaDB (Gradle) (0) | 2024.04.25 |
| [JPA] Java Persistence API 정리 (0) | 2024.04.25 |