분류 전체보기 22

[JPA] 영속성 컨텍스트란?

JPA의 기본 중에 기본이고 이해하기 위해서는 영속성 컨텍스트(persistence context)라는 단어이다. 영속성 컨텍스트를 번역하자면 '엔티티를 영구 저장하는 환경'이라는 뜻이다.엔티티를 저장하거나 조회할 때 엔티티 매니저를 사용하여 영속성 컨텍스트에 엔티티를 저장또는 보관한다. 엔티티의 생명주기엔티티에는 4가지 상태가 있다.1. 비영속2. 영속3. 준영속4. 삭제 이 4가지를 하나하나 자세히 알아보자.// 코드에서의 em은 엔티티 매니저의 약자1. 비영속(new/transient)영속성 컨텍스트와 전혀 관계가 없는 상태.말 그대로 영속성 컨텍스트와는 전혀 관계가 없는 상태이다.만약 엔티티 객체를 생성했다고 가정해 보면 그 엔티티는 순수하게 객체 상태이지 디비에 저장이 되지 않은 상태이다. 저장..

JPA 2024.03.10

[JPA] 1차 캐시란?

영속성 컨텍스트란?1차 캐시에 대해 이야기하면서 영속성 컨텍스트에 대해 말을 빼먹을 수 없다.영속성 컨텍스트란 엔티티를 영구히 저장하는 환경이라는 뜻이다.만약에 엔티티를 저장 또는 조회를 시도한다면 엔티티 매니저가 영속성 컨텍스트를 사용하여 관리한다. 여기서 말하는 영속성 컨텍스트는 우리가 개발을 하면서 본 경우가 없을 것이다. 왜냐면 여기서 말하는 영속성 컨텍스트는 논리적인 개념일 뿐이지 볼 수 있는 것은 아니다. 그리고 엔티티 매니저를 생성하면서 영속성 컨텍스트는 딱 하나 만들어진다.이제 1차 캐시에 대해 이야기할 건데 영속성 컨텍스트를 이해했다는 가정하에 이야기해 보자. 1차 캐시란?1차 캐시는 영속성 컨텍스트의 특징 중에 하나이다.영속성 컨텍스트의 특징은 이것 말고도 많지만 오늘은 1차 캐시에 대..

JPA 2024.03.05