[Spring JPA #5] JPA 엔티티 상태

2021. 3. 25. 03:08 Spring Data/Spring Data JPA

| 엔티티 상태

 

JPA에서는 엔티티의 상태를 다음과 같이 나눈 후 사용자가 요청한 사항에 맞추어 관리하게 됩니다.

 

  • Transient : JPA가 엔티티를 나타내는 객체에 대한 정보를 모르는 상태
  • Persistent : JPA가 엔티티를 관리 중인 상태 
  • Detached : JPA가 더이상 엔티티를 관리하지 않는 상태
  • Removed : JPA가 엔티티를 관리하는 상태에서 이 엔티티를 삭제하기로한 상태

 

 

| JPA에서 제공하는 엔티티 기능 : 1차 캐시, Dirty Checking, Write Behind

 

  • 1차 캐시 : JPA에서 DB로 엔티티를 영속화 했을 때, 다시 그 엔티티를 받아올 때는 상태가 변경되지 않았을 시, 메모리에 캐시된 엔티티 정보를 받아옵니다.
  • Dirty Checking : 엔티티의 변경 사항을 추적하는 기능입니다. 상태를 추적하여 데이터에 변화가 없을 경우에는 어떠한 상태도 DB에 반영하지 않습니다.
  • Write Behind : DB에 엔티티의 변경사항을 최대한 필요한 시점에 반영하는 것을 의미합니다.

 

https://www.inflearn.com/course/스프링-데이터-jpa



출처: https://engkimbs.tistory.com/816?category=772527 [새로비]