엔티티의 생명주기에 대해 설명해주세요. #153
Replies: 2 comments
-
엔티티의 생명 주기는 주로 다음과 같은 상태를 가지게 됩니다.
엔티티 상태 전이
번외 - 엔티티 생명주기 콜백 함수가 있다. @Entity
public class MyEntity {
@Id
private Long id;
// 엔티티 필드들...
@PrePersist
public void prePersist() {
System.out.println("Before persisting the entity");
}
@PostPersist
public void postPersist() {
System.out.println("After persisting the entity");
}
...
} 위 처럼 어노테이션을 활용해, 특정 생명주기로 상태 변화 시 로직을 수행할 수 있게 됩니다. |
Beta Was this translation helpful? Give feedback.
-
New 상태 (비영속)Member member = new Member("프린"); 엔티티 객체가 새로 생성되었지만, 아직 영속성 컨텍스트와 연관되지 않은 상태입니다. 이 상태에서는 데이터베이스와 전혀 관련이 없습니다. Managed 상태 (영속)em.persist(member);
em.merge(detagedMember);
em.find(Member.class, 1L); 엔티티 객체가 영속성 컨텍스트에 관리되고 있는 상태입니다. 이 상태에서는 엔티티의 변경 사항이 자동으로 데이터베이스에 반영됩니다. Detached 상태 (준영속)em.detach(member);
em.clear();
em.close(); 엔티티 객체가 한 번 영속성 컨텍스트에 의해 관리되었지만, 현재는 영속성 컨텍스트와 분리된 상태입니다. 이 상태에서는 엔티티 객체의 변경 사항이 더 이상 데이터베이스에 반영되지 않습니다. Removed 상태 (삭제)em.remove(member); 엔티티 객체가 영속성 컨텍스트에서 제거된 상태입니다. 이 상태에서는 엔티티 객체가 데이터베이스에서 삭제됩니다. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
All reactions