JPA의 더티 체킹이란 무엇인가요?

코코·2023년 10월 12일
0

기술면접 준비

목록 보기
4/42

JPA(Java Persistence API)의 더티 체킹(Dirty Checking)은 엔티티 객체의 상태 변화를 자동으로 감지하고 데이터베이스에 변경 사항을 동기화하는 메커니즘입니다. 더티 체킹은 JPA가 영속성 컨텍스트(Persistence Context)에서 엔티티를 관리하며 사용됩니다.

더티 체킹(Dirty Checking)은 JPA에서 다음과 같이 작동합니다

  1. 엔티티 로딩: 데이터베이스에서 엔티티를 로드하여 영속성 컨텍스트에 저장합니다.

  2. 엔티티 상태 변경: 애플리케이션 코드에서 엔티티의 필드 값을 수정합니다.

  3. 변경 감지: JPA는 주기적으로 영속성 컨텍스트 내의 엔티티 상태를 확인하고 엔티티의 필드 값 변경을 감지합니다.

  4. 동기화: 더티 상태로 표시된 엔티티는 트랜잭션을 커밋할 때 자동으로 데이터베이스와 동기화됩니다. JPA는 변경 내용을 SQL 쿼리를 통해 데이터베이스에 반영합니다.

요약하면, 더티 체킹을 통해 엔티티의 상태 변경을 감지하고 데이터베이스와의 동기화를 자동으로 처리할 수 있으며, 이를 통해 데이터 일관성을 유지하고 데이터베이스 상호작용을 단순화합니다.

profile
Just Do It

0개의 댓글