Home
Java
Entity Lifecycle (엔티티 생명주기)
devfoxstar
devfoxstar
April 13, 2022
1 min

Table Of Contents

01
비영속 (new, transient)
02
영속 (managed)
03
준영속 (detached)
04
삭제 (Remove)

생명주기를 알아보기 전에 영속성 컨텍스트 (Persistence Context) 개념을 먼저 알아야 합니다.
영속성 컨텍스트란 인스턴스로 존재하는 엔티티를 관리하고 영속화 시키는 논리적 영역입니다.

영속성 컨텍스트에서 엔티티를 관리하고 DB 이벤트를 처리하는 객체가 바로 엔티티 매니저 (Entity Manager)입니다.
영속성 컨텍스트는 1차 캐시 저장소SQL 저장소로 구성됩니다.

Entity Lifecycle에는 비영속, 영속, 준영속, 삭제 4가지 상태가 있습니다.


비영속 (new, transient)

엔티티가 영속성 컨텍스트와 관련이 없는 상태입니다.
엔티티 객체가 생성만 이루어진 단계입니다.

Member member = new Member();   //객체 생성

영속 (managed)

엔티티가 영속성 컨텍스트에서 관리되고 있는 상태입니다.
Entity Manager로 엔티티를 저장합니다.

EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction.begin();
em.persist(member);     //객체 저장
em.merge(member);       //준영속 상태를 영속 상태로 변환

준영속 (detached)

엔티티가 영속성 컨텍스트에서 분리된 상태입니다.

em.detach(member);  //특정 엔티티 분리
em.close();         //영속성 컨텍스트 닫기
em.clear();         //영속성 컨텍스트 초기화

삭제 (Remove)

엔티티 객체를 삭제한 상태입니다.

em.remove();    //객체 삭제

Entity Lifecycle
Entity Lifecycle

Entity Lifecycle Management


Tags

#Java#Entity#Lifecycle

Related Posts

Java - Record class (불변 데이터 객체 만들기)
June 11, 2024
1 min
© 2024, All Rights Reserved.

Quick Links

About Me

Media