ENTITY LIFECYCLE

엔티티 생명주기는 SQL 실행 시점을 설명한다

Transient, Managed, Detached, Removed 상태를 구분하면 왜 SQL이 즉시 나가지 않는지 이해할 수 있다.

ManagedDetachedRemoved
newTransient아직 영속성 컨텍스트와 DB에 연결되지 않은 새 객체
trackedManaged영속성 컨텍스트가 추적하며 변경 감지 대상
outDetached트랜잭션 종료나 clear 후 더 이상 추적하지 않음
deleteRemoved삭제 예약 상태. flush 시 DELETE 생성
persistTransient에서 Managed로 이동
detachManaged에서 Detached로 이동
removeManaged 엔티티를 삭제 예약