🖥️ Back-end

EntityManager 란?

승승장규 2025. 2. 13. 13:26
 

Entity란 무엇일까? (2) - 영속성 콘텍스트의 기능

이전 내용과 더불어 영속성 콘텍스트의 기능에 대해 알아보자. 1차 캐시영속성 콘텍스트는 내부적으로 캐시 저장소를 가지고 있다.우리가 저장하는 Entity 객체들이 1차 캐시 (캐시 저장소)에 저

seungg8361.tistory.com

 

Entity는 4가지 상태를 가질 수 있다

  • 비영속 상태 : entity 객체가 생성되었지만, 아직 영속성 콘텍스트와 연관되지 않은 상태
User user = new User("사용자");
  • 영속 상태:  entity 객체가 영속성 콘텍스트에 관리되고 있는 상태이며, entity의 변경사항이 자동으로 데이터베이스에 반영된다.
em.persist(user);
em.merge(detagedUser);
em.find(User.Class, 1L);
  • 준영속 상태 : entity 객체가 한 번 영속성 콘텍스트에 의해 관리되었지만, 현재는 분리된 상태로 데이터베이스에 변경 사항이 더 이상 반영되지 않는다. 영속성 콘텍스트 종료, 트랜잭션 종료 등으로도 준영속 상태로 전환된다.
em.detach(user);
em.clear();
em.close();
  • 삭제 상태 : entity 객체가 영속성 콘텍스트에서 제거된 상태로, entity 객체가 데이터베이스에서 삭제된다.
em.remove(user);