본문 바로가기

JPA2

영속성 컨텍스트 (Persistence Context) 0. 영속성 컨텍스트란? Entity를 영구히 저장하는 환경이라고 해석해 볼 수 있습니다. Entity Manager를 이용해 저장하거나 조회하면 Entity Manager는 영속성 컨텍스트에 해당 Entity를 보관 및 관리합니다. 1. 특징 1-1. 영속성 컨텍스트가 관리하는 Entity는 반드시 식별자가 존재해야 한다. 영속성 컨텍스트는 Entity를 식별자 값(@id로 테이블의 기본키와 맵핑한 값)으로 구분하기 때문에 반드시 존재해야 합니다. 만약 객체에 식별자가 없을 경우 Exception이 발생합니다. 1-2. 1차 캐시 영속성 컨텍스트 내부에는 캐시가 존재합니다. 이를 1차 캐시라고 부르며, 영속 상태의 Entity를 이곳에 저장합니다. 이 1차 캐시는 Key-Value 형태로 저장되며 Ke.. 2024. 2. 10.
Entity의 생명주기 (Entity LifeCycle) JPA에서 Entity는 4가지의 생명주기를 가집니다. 비영속 (New / Transient) Entity를 생성하고 아직 저장하지 않은 상태입니다. 따라서, 영속성 컨텍스트 혹은 데이터베이스와는 전혀 연관이 없는 상태입니다. Member member1 = new Member(); member1.setId(1); member1.setUserName("회원1"); 영속 (Managed) Entity Manager를 통해 Entity를 영속성 컨텍스트에 저장한 상태 혹은 저장된 Entity를 조회한 상태입니다. 영속성 컨텍스트가 관리하는 Entity를 이 영속 상태라고 합니다. Member member2 = new Member(); member2.setId(2); member2.setUserName("회원2.. 2024. 2. 9.