[JAVA / SpringBoot] 엔티티의 생명주기

chaentopia·2024년 4월 30일
0

NOW SOPT SERVER 과제

목록 보기
13/14
post-thumbnail

3차 세미나

Dirty는 Entity 데이터의 변경된 부분을 의미하는데, 더티 체킹이란 영속성 컨텍스트가 관리하는 Entity의 상태를 감지하고, 변경된 부분이 있다면 자동으로 트랜잭션이 끝나는 시점에 데이터베이스에 반영하는 기능입니다.

그렇다면 엔티티의 생명주기는 어떻게 될까요?

비영속 (new / transient)

순수한 객체 상태로, 영속성 컨텍스트와는 관련이 없는 상태입니다.

Member member = new Member();

영속 (managed)

EntityManager를 통해 엔티티를 영속성 컨텐스트에 저장해 영속성 컨텍스트가 관리하는 상태입니다.

em.persist(member); // 객체 저장

준영속 (detached)

영속성 컨텍스트에 저장되어있다가 분리된 상태를 의미합니다.

em.detach(member); // 특정 엔티티를 분리한다.

em.close(); // 영속성 컨텍스트 닫기
em.clear(); // 영속성 컨텍스트 초기화

삭제 (removed)

엔티티를 영속성 컨텍스트와 데이터베이스에서 삭제한 상태를 의미합니다.

em.remove(member);
profile
the pale blue dot

0개의 댓글