초록꼬마의 devlog
article thumbnail

🌿 의미

  • 엔티티를 영구 저장하는 환경
  • 엔티티 매니저(EntityManager, 엔티티를 관리하는 객체)로 엔티티를 저장/조회 → 엔티티 매니저는 영속성 컨텍스트에 접근 + 엔티티 보관/관리

EntityManager의 역할

  • 영속성 컨텍스트에 접근하기 위한 수단으로 사용됨
  • 데이터베이스에 접근해서 CRUD 작업 수행
  • 엔티티를 영속성 컨텍스트에 추가해서 영속 객체로 만듦
  • 영속성 컨텍스트와 데이터베이스를 비교하며 실제 데이터베이스를 대상으로 작업 수행

🌿 기능

  1. 애플리케이션과 데이터베이스 사이에서 엔티티와 레코드의 괴리를 해소
  2. 객체 보관

🌿 특징

  • 세션 단위의 생명주기를 가짐

🌿 용어

🌱 영속 객체 (Persistence Object)

  • 엔티티 객체가 영속성 컨텍스트에 들어와 JPA의 관리 대상이 되는 시점부터 해당 객체를 부르는 말

🌱 엔티티의 생명주기

  1. 비영속 (New, Transient)
  2. 영속 (Managed)
  3. 준영속 (Detached)
  4. 삭제 (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