-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
준영속 상태와 1차캐시에 올리지 않은(persist 하지 않은) 상태의 차이
24.04.30 17:08 작성 조회수 59
0
detach 메서드를 통해 준영속 상태로 전환 한다고 하였는데,
강의에서는 준영속 상태란 더이상 영속성 컨텍스트에서 관리되지 않는 상태라고 하였는데 persist하기 전과 동일한 상태가 되는 것 인지 아니면 다른 차이가 있는지 궁금합니다.
답변을 작성해보세요.
0
OMG
2024.04.30
안녕하세요. 황인호님, 공식 서포터즈 OMG입니다.
준영속 객체는 DB에 저장되었던 적이 있고, 식별자(id)도 할당되어있는 상태입니다 😀
반면 말씀하신 persist하기 전과 동일한 상태(비영속 상태)와는 차이가 있으며
아래 링크의 영한님 답변과 같이
new 상태인 객체와 준영속 상태의 객체는 merge()
라는 명령에서 동작에 차이가 있습니다. new 상태
인 객체는 merge()
를 호출할 때 완전히 새로운 엔티티
를 만듭니다. 반면에 준영속 상태
의 엔티티는 DB에서 기존 엔티티를 찾고
그 값을 준영속 상태의 객체로 변경한 후에 반환
합니다.
준영속 상태는 식별자가 서두에 답변드린 것처럼 식별자가 존재하여 DB에서 기존 엔티티를 찾을 수 있습니다.
다음 링크를 참고해주세요 😀
감사합니다.
답변 1