영속성 관리 - 영속성 컨텍스트
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 |