[Spring Boot] JPA에서의 엔티티의 생명주기와 detach에 대한 개인적인 고찰
·
Java
JPA를 공부하다가 JPA에서는 영속화가 어떻게 작동하는가에 대해 의문이 들었다. 영속화에 대한 디테일한 내용들(1차 캐시 등등..)은 내가 의문이 들었던 내용보다는 더 깊숙한 이론들이라 간단하게만 설명하고 넘어가겠다. 엔티티의 생명주기는 크게 4단계로 구별된다.비영속(Transient)Member member = new Member();DB와 관계가 없고 단순히 생성된 객체를 의미한다.영속(Persistent)em.persist(member);영속화되어 JPA에서 관리되는 상태이다.이때부터 변경 감지가 가능하다.준영속(Detached)em.detach(member);영속화되어있는 특정 객체의 영속성을 끊는다.clear() 메서드를 사용하면 1차 캐시에 들어있는 모든 데이터를 준영속 상태로 바꾸게 된다...