JPA의 영속 상태
- 영속 상태의 Entity의 상태 변경을 데이터베이스가 자동 반영한다
"영속 상태"는 JPA에서 엔티티의 생명주기를 설명하는 용어 중 하나입니다.
엔티티의 생명주기는 크게 비영속, 영속, 준영속, 삭제 네 가지 상태로 나눌 수 있습니다.
- 비영속: 아직 영속성 컨텍스트에 속하지 않은 상태. 즉, 아직 데이터베이스와 연관이 없는 상태입니다.
- 영속: 영속성 컨텍스트에 속해 있는 상태. 즉, 데이터베이스와 연관이 있는 상태입니다.
- 준영속: 영속성 컨텍스트에서 분리된 상태. 즉, 데이터베이스와의 연관이 끊긴 상태입니다.
- 삭제: 엔티티가 삭제된 상태. 즉, 데이터베이스에서 삭제된 상태입니다.
영속 상태란?
"영속 상태"라는 말은 엔티티가 Persist Context에 속해 있으며, 따라서 데이터베이스와 연관이 있다는 것을 의미합니다.
영속 상태의 엔티티는 Persist Context가 관리하므로, 엔티티의 상태 변경이 데이터베이스에 자동으로 반영됩니다.
영속성 상태로 만든 후에 엔티티 상태를 바꾼다?
"영속성 상태로 만든 후에 엔티티 상태를 바꾼다"는 말은, 엔티티를 영속 상태로 만든 후에 (즉,EntityManager.persist
를 호출한 후에) 엔티티의 필드 값을 변경한다는 것을 의미합니다.
이 경우, 변경된 필드 값은 트랜잭션 커밋 시점에 데이터베이스에 자동으로 반영됩니다.
이는 JPA의 “Dirty Checking” 기능 덕분입니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'DEV > Java' 카테고리의 다른 글
요청 DTO에 정규 표현식 적용하는 방법 (0) | 2023.07.18 |
---|---|
H2 DB (0) | 2023.07.11 |
Persist Context (0) | 2023.07.11 |
JPA (0) | 2023.07.11 |
DataJpaTest (0) | 2023.07.11 |