카테고리 없음
JPA Entity 상태 종류
devwriter
2023. 2. 19. 23:19
트랜지언트 : Transient
JPA 와 전혀 상관없는 상태. 그냥 자바 객체
퍼시스턴트 : Persistent
JPA 가 관리 중인 상태. 1차 캐시, Dirty checking, Write behind
디태치드 : Detached
JPA 가 관리 하다가 그만둔 상태. Transient 와 같이 JPA 와 관련 없어짐.
리무브드 : Removed
JPA 가 관리 중인 상태. 삭제 예정인 상태
JPA 를 사용할 때에는 엔티티 객체가 Persistent 상태인지 명확하게 알아야 합니다.
new 로 생성한 엔티티 객체를 save 했거나, repository 에서 find 했다면 Persistent 상태입니다.
동일 Transaction 내에서는 Persistent 상태가 유지됩니다.
하지만 Transaction 이 끝나면 Detached 상태로 변경됩니다.
이 부분을 명확이 이해하면 됩니다.