생명주기를 알아보기 전에 영속성 컨텍스트 (Persistence Context)
개념을 먼저 알아야 합니다.
영속성 컨텍스트란 인스턴스로 존재하는 엔티티를 관리하고 영속화 시키는 논리적 영역입니다.
영속성 컨텍스트에서 엔티티를 관리하고 DB 이벤트를 처리하는 객체가 바로 엔티티 매니저 (Entity Manager)
입니다.
영속성 컨텍스트는 1차 캐시 저장소
와 SQL 저장소
로 구성됩니다.
Entity Lifecycle
에는 비영속, 영속, 준영속, 삭제
4가지 상태가 있습니다.
엔티티가 영속성 컨텍스트와 관련이 없는 상태입니다.
엔티티 객체가 생성만 이루어진 단계입니다.
Member member = new Member(); //객체 생성
엔티티가 영속성 컨텍스트에서 관리되고 있는 상태입니다.
Entity Manager
로 엔티티를 저장합니다.
EntityManager em = entityManagerFactory.createEntityManager(); em.getTransaction.begin();
em.persist(member); //객체 저장
em.merge(member); //준영속 상태를 영속 상태로 변환
엔티티가 영속성 컨텍스트에서 분리된 상태입니다.
em.detach(member); //특정 엔티티 분리 em.close(); //영속성 컨텍스트 닫기 em.clear(); //영속성 컨텍스트 초기화
엔티티 객체를 삭제한 상태입니다.
em.remove(); //객체 삭제