엔티티 매니저의 생명 주기에 대해서 설명해줘
엔티티 매니저(Entity Manager)는 JPA(Java Persistence API)에서 엔티티의 생명 주기를 관리하는 핵심적인 역할을 합니다. 엔티티 매니저의 생명 주기와 관련된 주요 개념과 단계를 설명하겠습니다.
각 단계는 엔티티의 상태를 관리하는 엔티티 매니저의 역할을 이해하는 데 중요합니다.
엔티티가 아직 영속성 컨텍스트에 관리되지 않는 상태입니다. 엔티티가 새로 생성되었지만 데이터베이스에 저장되지 않은 상태를 의미합니다.
java코드 복사
EntityManager em = ...;
Review review = new Review(); // 비영속 상태
엔티티가 영속성 컨텍스트에 의해 관리되는 상태입니다. 엔티티 매니저를 통해 엔티티가 관리되고, 해당 엔티티는 데이터베이스와 동기화됩니다.
java코드 복사
em.persist(review); // 영속 상태로 전환
이 상태에서 엔티티에 대한 변경 사항은 영속성 컨텍스트에 의해 자동으로 추적되며, 트랜잭션이 커밋될 때 데이터베이스에 반영됩니다.
엔티티가 더 이상 영속성 컨텍스트에 의해 관리되지 않는 상태입니다. 엔티티 매니저가 닫히거나 엔티티가 명시적으로 분리(detach)될 때 이 상태로 전환됩니다.
java코드 복사
em.detach(review); // 준영속 상태로 전환