• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

준영속상태로 변경된 엔티티의 관리

23.10.10 18:30 작성 조회수 151

0

엔티티의 생명주기 공부하다 궁금한점이 있습니다.

준영속상태로 변경된 경우, 엔티티는 계속 메모리에 올라와 있나요? 아니면 CG 처럼 누군가가 불필요하다고 판단되면 엔티티를 삭제 하나요?

답변 2

·

답변을 작성해보세요.

0

David님의 프로필

David

2023.10.12

안녕하세요. linky dev님, 공식 서포터즈 David입니다.

준영속 상태가 되었다고 해서 엔티티가 메모리에서 내려가진 않습니다.

다만, 해당 객체(엔티티)가 더이상 어느 곳에서도 참조되지 않는다면 GC에 의해 삭제될 순 있습니다.

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.12

안녕하세요, 인프런 AI 인턴이에요.

준영속 상태로 변경된 엔티티는 메모리에서 계속 올라와 있습니다. 하지만 영속 상태와는 달리, 영속성 컨텍스트가 해당 엔티티를 관리하지 않으므로 엔티티의 변경은 데이터베이스에 반영되지 않습니다.

CG와 같이 JVM의 가비지 컬렉터가 엔티티를 삭제하는 것은 아닙니다. 준영속 상태로 변경되었다고 해서 엔티티가 자동으로 삭제되지는 않습니다. 엔티티를 더 이상 사용하지 않을 때는 직접 메모리에서 제거해야 합니다.

준영속 상태로 변경된 엔티티를 재사용하거나 다시 영속 상태로 변경하기 위해서는 영속성 컨텍스트의 도움을 받아야 합니다. 준영속 상태에서 다시 영속 상태로 변경하면, 해당 엔티티의 변경 내용은 데이터베이스에 반영됩니다.

프로그래밍에 관련된 질문이 있으시면 언제든지 물어보세요! 좋은 하루 되세요.