🔥스파르타 TIL (Spring)

Entity란 무엇일까? (3) - Entity의 상태

승승장규 2025. 2. 7. 22:29

JPA가 관리하는 상태 => 영속 상태 (MANAGED)

 

ex) User user = new User() : 비영속 상태

 

준영속 상태 (Detached) : 영속성 상태에서 관리되다가 분리된 상태 

 

 

영속 상태 -> 준영속 상태

  • contains() : Entity 객체가 현재 영속성 콘텍스트에 저장되어 관리되는 상태인지 확인하는 메서드
  • detach() : 특정 Entity를 영속성 콘텍스트 상태에서 분리시켜서 준영속성 상태로 만드는 메서드, 영속성 콘텍스트로 관리되고 있는 영속 상태일 때만 변경 감지가 일어난다.
  • clear() : 컨텍스트를 완전 초기화 시킨 뒤, 영속성 콘텍스트에 있는 모든 Entity를 준영속 상태로 만든다. 하지만 영속성 콘텍스트의 틀은 유지해서 내용만 바뀐다. => 비우고 다시 사용
  • close() : 영속성 컨텍스트를 닫아서 완전히 비워버린다.

준영속 상태 -> 영속 상태

  • merge() : 비영속성 상태의 Entity를 담아서 반환하면 영속 상태로 만든다. 값을 수정하는 경우에는 준영속 상태의 Entity는 상태가 없기 때문에 데이터베이스에서 값을 찾아 영속성 콘텍스트에 저장한 뒤, 준영속 상태에서 바뀐 값과 병합을 해서 수정을 진행한다.

 

오늘은 간단하게 Entity의 상태에 대해 알아보았습니다.🖐️🖐️

'🔥스파르타 TIL (Spring)' 카테고리의 다른 글

Bean 이란?  (0) 2025.02.09
JPA 란? (2) - Spring Data JPA  (0) 2025.02.08
JPA 란? (1)  (0) 2025.02.08
Entity란 무엇일까? (2) - 영속성 콘텍스트의 기능  (0) 2025.02.04
Entity란 무엇일까? (1)  (0) 2025.02.03