영속성 관리 - 영속성 컨텍스트

2021. 5. 17. 19:09
반응형

영속성 컨텍스트

  • "엔티티를 영구 저장하는 환경" 이라는 뜻으로 JPA를 이해하는데 가장 중요한 용어 이다.
  • 엔티티 매니저(EntityManager)를 통해서 영속성 컨텍스트에 접근할 수 있다(한다).
  • 추상적인 개념이다.(눈에 보이지 않음)

엔티티의 생명주기

  • 비영속(new/transcient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태
  • 영속(managed) : 영속성 컨텍스트가 관리하는 상태
  • 준영속(detached) : 영속성 컨텍스트에서 관리되었다가 분리되어 관리되고 있지 않은 상태
  • 삭제(removed) : 삭제된 상태

비영속(new/transcient)

엔티티매니저에 의해서 아무런 조치가 취해지지 않은 상태, 즉 영속성 컨텍스트와 전혀 관계가 없는 상태를 말한다.

 

소스코드 예시

//객체를 생성 (비영속)
Member member = new Member();
member.setId(1L);
member.setName("memberA");

영속(managed)

엔티티매니저에 의해서 관리되는 상태를 말한다.

 

소스코드 예시

EntityManager em = emf.createEntityManager();

//객체를 생성 (비영속)
Member member = new Member();
member.setId(1L);
member.setName("memberA");

//객체를 저장 (영속)
em.persist(member); 

준영속(detached)

엔티티매니저가 관리하다가 영속성 컨텍스트에서 분리된 상태를 말한다.

 

소스코드 예시

//객체를 분리 (준영속)
em.detach(member);

삭제(removed)

영속성 컨텍스트에서 아예 삭제된 상태

 

소스코드 예시

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

 

반응형

'JPA' 카테고리의 다른 글

값 타입  (0) 2022.02.02
프록시와 연관관계 관리  (0) 2022.02.02
상속관계 매핑과 @MappedSuperclass  (0) 2022.01.31
연관관계 매핑  (0) 2022.01.25
엔티티 매핑  (0) 2022.01.20

BELATED ARTICLES

more