SPRING

[SPRING] JPA 영속성 컨텍스트

집한구석 2021. 5. 16. 00:26
728x90

정의

  • 엔티티를 영구 저장하는 환경
  • 엔티티 매니저로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 보관하고 관리함

엔티티 생명주기

  • 비영속(new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 상태
  • 영속(managed) : 영속성 컨텍스트에 저장된 상태
  • 준영속(detacted) : 영속성 컨텍스트에 저장되었다가 분리된 상태
  • 삭제(removed) : 삭제된 상태
//객체를 생성한 상태 (비영속)
Member member = new member();
member.setId("member1");
member.setUsername("회원1");

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

//엔티티를 영속성 컨텍스트에서 분리 (준영속)
em.detach(member);

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

특징

  • 영속성 컨텍스트는 엔티티를 식별자 값으로 구분함, 영속상태에서는 식별자 값(@Id로 기본키 매핑값)이 필수
  • 트랜잭션을 커밋한순간 플러시를 통해서 반영
  • 엔티티 관리를 통하여 1차 캐시, 동일성 보장, 변경감지, 지연 로딩, 트랜잭션을 지원하는 쓰기 지연 등 장점이 있음

 

 

'SPRING' 카테고리의 다른 글

[SPRING] DISPATCHER-SERVLET  (0) 2021.06.07
[SPRING] Bean  (0) 2021.05.23
[SPRING] 컨테이너 (Container)  (0) 2021.05.23
[SPRING] JPA 연관관계  (0) 2021.05.19
[SPRING] 의존성 주입  (0) 2021.05.17