영속성 컨텍스트
-
Sneakers Mania - 더티 체킹(Dirty Checking)Projects/Problem & Solution 2022. 1. 4. 14:12
더티 체킹(Dirty Checking) 더티 체킹(Dirty Checking)이란? JPA는 EntityManager가 Entity를 저장/조회/수정/삭제를 한다. 그런데, EntityManager의 메서드를 찾아보면, 저장(persist)/조회(find)/삭제(delete)로 수정에 해당하는 메서드는 존재하지 않는다. 대신에 더티 체킹(Dirty Checking)이라는 개념이 존재한다. 더티 체킹은 트랜잭션 안에서 Entity의 변경이 일어나면, 변경 내용은 자동으로 DB에 반영하는 JPA의 특징이다. 또한, 영속성 컨텍스트 안에 있는 Entity를 대상으로 더티 체킹이 발생한다. 여기서 Dirty란 Entity 데이터의 변경된 부분으로 해석하면 된다. 즉, Entity의 변경된 부분을 확인해서 DB에..
-
Spring Boot - JPA의 영속성 컨텍스트Framework & Library/Spring Boot 2021. 12. 2. 13:36
영속성 컨텍스트의 정의 개요 Spring Boot를 사용하고 있는 요즘에는 Spring 프레임워크에 맞춰져 있는 Spring Data JPA를 사용한다. 그런데, Spring Data JPA를 사용하면서 객체에 있는 데이터들이 스스로 변화를 감지하고, 객체의 데이터가 자동으로 변경, 생성, 삭제가 이루어지는데, 이 과정이 어떻게 가능한지 영속성 컨텍스트를 통해 알아보고자 한다. 영속성 컨텍스트란? 영속성 컨텍스트란, Entity를 영구적으로 저장하는 환경을 말한다. Spring으로 JDBC를 이용하여 개발을 해본 사람들은 DB에 있는 데이터가 어떤 식으로 읽히고 쓰이는 건지 이해할 수 있을 것이다. 간단하게 요약하자면, 다음과 같다. Connection 생성 - Connection 연결 - Stateme..