February 24, 2022
영속성 컨텍스트는 “엔티티를 영구 저장하는 환경” 이라는 뜻으로 논리적인 개념이다. 이렇게만 정의하면 어떤 뜻인지 잘 모르는데 아래에 하나씩 설명하겠다.
먼저 영속성 컨텍스트에 대해서 알기전에 JPA에서 엔티티의 생명주기에 대해서 알아야한다.
위의 그림을 보면 4가지 New, Detaced, Manged, Removed 상태로 나뉘고, 각 메소드를 통해서 서로 이동할 수 있다.
영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 즉 객체를 생성한 상태이다.
영속성 컨텍스트에 관리되는 상태
영속성 컨텍스트에 저장되었다가 분리된 상태
객체를 삭제된 상태
영속성 컨텍스트는 위에서 보인 것처럼 Entity를 관리해주는 공간이다. 그렇다면 영속성컨텍스트에 의해 관리가 되면 어떠한 장점이 있을까?
1차캐시
1차캐시에서 찾기 -> DB 조회 -> 1차캐시에 저장 -> 반환
영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는 것이다.
다음과 같은 방법으로 영속성 컨텍스트를 플러시할 수 있다.