[스프링] JPA와 영속성 컨텍스트

영속성 컨텍스트란?

JPA(Java Persistence API)에서 영속성 컨텍스트는 엔티티(Entity)들을 관리하는 환경을 의미합니다. 영속성 컨텍스트는 엔티티의 생명주기를 관리하고, 데이터베이스와 상호작용하는데 사용됩니다.

영속성 컨텍스트의 장점

JPA와의 관계

JPA는 영속성 컨텍스트를 관리하는 역할을 합니다. JPA의 EntityManager 인터페이스를 통해 영속성 컨텍스트에 접근하고, 엔티티의 상태를 관리할 수 있습니다.

영속성 컨텍스트의 생명주기

영속성 컨텍스트는 다음과 같은 생명주기를 갖습니다:

  1. 비영속 상태: 영속성 컨텍스트와 전혀 관계가 없는 상태입니다.
  2. 영속 상태: 영속성 컨텍스트에 엔티티가 저장되어 있는 상태입니다.
  3. 준영속 상태: 영속성 컨텍스트에서 분리된 상태입니다.
  4. 삭제 상태: 엔티티가 삭제된 상태입니다.

영속성 컨텍스트의 트랜잭션 처리

영속성 컨텍스트는 트랜잭션과 밀접한 관계가 있습니다. 트랜잭션을 시작하고 종료할 때, 영속성 컨텍스트는 영속성 컨텍스트 내의 엔티티 상태를 싱크화하여 데이터베이스와의 일관성을 유지합니다.

영속성 컨텍스트는 JPA의 중요한 기능 중 하나이며, JPA를 사용하면서 영속성 컨텍스트를 잘 이해하고 활용하는 것이 중요합니다.

더 많은 정보는 Hibernate documentation에서 확인할 수 있습니다.