🌿 의미
- 엔티티를 영구 저장하는 환경
- 엔티티 매니저(EntityManager, 엔티티를 관리하는 객체)로 엔티티를 저장/조회 → 엔티티 매니저는 영속성 컨텍스트에 접근 + 엔티티 보관/관리
EntityManager의 역할
- 영속성 컨텍스트에 접근하기 위한 수단으로 사용됨
- 데이터베이스에 접근해서 CRUD 작업 수행
- 엔티티를 영속성 컨텍스트에 추가해서 영속 객체로 만듦
- 영속성 컨텍스트와 데이터베이스를 비교하며 실제 데이터베이스를 대상으로 작업 수행
🌿 기능
- 애플리케이션과 데이터베이스 사이에서 엔티티와 레코드의 괴리를 해소
- 객체 보관
🌿 특징
- 세션 단위의 생명주기를 가짐
🌿 용어
🌱 영속 객체 (Persistence Object)
- 엔티티 객체가 영속성 컨텍스트에 들어와 JPA의 관리 대상이 되는 시점부터 해당 객체를 부르는 말
🌱 엔티티의 생명주기
- 비영속 (New, Transient)
- 영속 (Managed)
- 준영속 (Detached)
- 삭제 (Removed)
🌿 영속성 컨텍스트가 엔티티르 관리할 때 장점
🌱 1차 캐시
🌱 동일성 보장
🌱 트랜잭션을 지원하는 쓰기 지연(transactional write-behind)
🌱 변경 감지(dirty checking)
🌱 지연 로딩(lazy loading)
'back-end dev > JPA' 카테고리의 다른 글
update (0) | 2023.07.29 |
---|---|
재귀적/자기참조/순환 관계를 JPA에서 구현하기 (0) | 2023.07.21 |
[Spring Data JPA] data access 계층 구현 (0) | 2022.11.03 |
프록시, 지연 로딩 (0) | 2022.11.01 |
JPA (Java Persistence API) (0) | 2022.08.02 |