엔티티의 생명주기

nan_nui·2024년 4월 30일
0

SOPT

목록 보기
3/5

엔티티의 4가지 상태

엔티티는 비영속, 영속, 준영속, 삭제의 4가지 상태를 갖는다.

비영속영속준영속삭제
영속성 컨텍스트와 관련 X영속성 컨텍스트에 저장된 상태영속성 컨텍스트에 저장되었다가 분리된 상태삭제된 상태

위 표와 같은 4가지 상태를 갖는다.

[영속성 컨텍스트]
영속성 컨텍스트란, DB와 어플리케이션 사이에서 객체를 저장하여 엔티티를 보관하고 관리할 수 있도록 가상의 DB 역할을 한다. 영속성 컨텍스트를 관리하고, 영속성 컨텍스트에 접근하는 Entity Manager가 생성될 때 한 번 생성된다.

엔티티 생명 주기

비영속

엔티티 객체를 생성하였지만 영속성 컨텍스트와 영속성 컨텍스를 관리하고 접근하는 EntityManager와는 아무런 관련이 없는 상태이다.
위의 생명 주기 그림에서 New에 해당한다.

영속

EntityManager를 통해 엔티티 객체를 영속성 컨텍스트에 저장한 상태를 말한다. 영속성 컨텍스트에 의해 관리되는 상태로 Managed에 해당한다.

em.persist(entityObject);

준영속

영속성 컨텍스트에 저장되었다가 더이상 관리되지 않는 상태로, 영속성 컨텍스트로부터 분리된다.

em.detach(entityObject);
em.clear();
em.close();

준영속 상태는 영속성 컨텍스트에서 구별될 수 있는 식별자를 갖고 있지만, EntityManager를 통한 어떤 작업도 수행될 수 없다.

삭제

영속성 컨텍스트로부터 완전히 삭제된 상태이다.

em.remove(entityObject);

https://velog.io/@neptunes032/JPA-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%9E%80#%EC%97%94%ED%8B%B0%ED%8B%B0%EC%9D%98-%EC%83%9D%EB%AA%85%EC%A3%BC%EA%B8%B0

profile
nannui의 개발로그

0개의 댓글