[SPRING] JPA 영속성 컨텍스트

2021. 5. 16. 00:26·SPRING
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
'SPRING' 카테고리의 다른 글
  • [SPRING] Bean
  • [SPRING] 컨테이너 (Container)
  • [SPRING] JPA 연관관계
  • [SPRING] 의존성 주입
집한구석
집한구석
  • 집한구석
    tgyun615.info
  • 전체
    오늘
    어제
    • 카테고리 (183)
      • JAVA (38)
      • SPRING (15)
      • KOTLIN (23)
      • NETTY (1)
      • DEVOPS (3)
      • DOCKER (7)
      • KUBERNETES (2)
      • JAVASCRIPT (1)
      • SPLUNK (3)
      • ELK (7)
      • KAFKA (2)
      • GO (4)
      • ALGORITHM & DATA STRUCTURE (9)
      • IDE (5)
      • OS (16)
      • NETWORK (14)
      • GCP (2)
      • AWS (2)
      • DATABASE (10)
      • CLEANCODE (7)
      • OTHER (12)
  • 최근 글

  • 태그

    java
    코틀린
    SQL
    IntelliJ
    프로그래머스
    AWS
    Kafka
    Spring
    docker
    cleancode
    이펙티브 코틀린
    ElasticSearch
    splunk
    엘라스틱서치
    Elk
    자바
    이펙티브코틀린
    클린코드
    go
    JPA
  • 링크

    • github
    • linkedin
    • resume
  • hELLO· Designed By 정상우. v4.10.3
집한구석
[SPRING] JPA 영속성 컨텍스트
상단으로

티스토리툴바