영속성 컨텍스트에 영속되어있다가 분리되는 것이다.
em.detach(entity)
em.clear()
em.close()
Merge()
비영속, 준영속 상태의 엔티티를 다시 영속 상태로 만드는 것이다.
새로운 영속 상태의 엔티티를 반환한다.
save Or update의 기능을 한다.
비영속, 준영속 상태의 member
의 name
을 수정한다.
em2.merge(member)
가 호출된다.
1차 캐시에서 member
의 식별자 값으로 찾는다.
없으면 DB에서 조회 후, em2
의 1차 캐시에 영속시킨다.
비영속, 준영속 상태의 member
의 값을 mergeMember
의 값에 업데이트 시킨다.
member = em2.merge(member)
처럼 기존 준영속 변수를 할당하는 것이 좋다!mergeMember
의 merge된 새로운 엔티티가 반환된다.