Development Memories/JPA

【JPA】Persistence Context(영속성 컨텍스트) 란 무엇인가?

친절한올드보이 2021. 4. 15. 10:41
반응형

JPA에서 중요한 부분이라 학습했던 부분을 그림으로 그려서 정리해 보았습니다.

 

Persistence Context(영속성 컨텍스트)는 엔티티 매니저를 생성할 때 하나가 생성이되고 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 및 관리를 할수 있습니다. 여러 엔티티 매니저가 하나의 영속성 컨텍스트를 접근하거나 관리할 수 도 있습니다.

 

EntityManager로 엔티티를 저장하거나 조회하면 엔티티 매니저는 영속성 컨텍스트에 엔티티를 보관하고 관리하게 됩니다.

예를 들어, 엔터티에 대한 "persist() or merge()"을 수행하여도 그 시점에서는 데이터베이스에 기록되지 않고 「이 엔티티는 데이터베이스에 새롭게 Insert 하는 데이터」 라고 표시하고 영속성 컨텍스트에 저장할 뿐입니다. 이 개체의 "영속성"이며, EntityManager가 데이터베이스에 저장이 가능해진 상태임을 의미하는 것입니다.

 

엔티티의 라이프 사이클 1 (Persistence Context의 전체적인 흐름)

 

엔티티 라이프 사이클2 (Persistence Context의 상태에 따른 라이프 사이클)

 

JPA에서 Persistence Context(영속성 컨텍스트) 개념은 매우 중요하다고 합니다. 

처음부터 기본 개념을 확실히하고 시작해야 실제 서비스에 도입시 설계 및 고려사항에 도움이 된다고 합니다.

여러가지 문서를 보면서 확실한 개념을 익히시길를 바랍니다.