[Spring]/JPA 프로그래밍 - 기본편

영속성 컨텍스트 1

응파카 2023. 4. 7. 21:30

JPA에서 가장 중요한 2가지

  • 객체와 RDB 매핑하기
  • 영속성 컨텍스트

엔티티 매니저와 엔티티 매니저 팩토리

 

 

영속성 컨텍스트

  • 엔티티를 영구저장하는 환경이라는 뜻이다.
  • EntityManager.persist(entity) 를 통해서 DB에 저장하는게 아니다
    • Entity를 영속성 컨텍스트에 저장하는 것이다.
  • 영속성 컨텍스트는 논리적인 개념으로, 눈에 보이지 않는다.
  • 엔티티매니저를 통해서 영속성 컨텍스트에 접근한다.

 

 

 

엔티티의 생명주기

비영속(new/transient)

 

  • 영속성 컨텍스트랑 전혀 관계가 없는 새로운 상태
  • 위 예시는 Member 객체만 생성하고 EntityManager에 아무것도 넣지 않은 상태이므로 JPA와 상관 없는 상태이다.

 

영속(managed)

 

  • 영속성 컨텍스트에 의해 관리되는 상태
  • persist 메서드에 의해 EntityManager 안으로 들어가 영속 상태가 된다.
  • 여기서 다음과 같이 sout 해주면 persist가 DB에 저장하는 작업과는 별개라는 것을 알 수 있다.

  • BEFORE와 AFTER 사이에 어떤 쿼리도 적용되지 않는다.

 

준영속(detached)

  • 영속성 컨텍스트에 저장되었다가 분리된 상태

 

삭제(removed)

  • 삭제된 상태

'[Spring] > JPA 프로그래밍 - 기본편' 카테고리의 다른 글

플러시  (0) 2023.04.09
영속성 컨텍스트 2  (0) 2023.04.08
Hello JPA - 애플리케이션 개발  (0) 2023.03.28
Hello JPA - 프로젝트 생성  (0) 2023.03.27
JPA 소개  (0) 2023.03.27