변경감지 와 병합(merge)


변경감지 와 병합(merge)

준영속 엔티티? - 영속성 컨텍스트가 더는 관리하지 않는 엔티티을 말한다. 준영속 엔티티을 수정하는 2가지 방법 - 변경감지 기능사용 - 병합(merge) 사용 변경감지 기능사용 트랜잭션 안에서 엔티티을 다시 조회,변경할 값 선택 -> 트랜잭션 커밋 시점에 변경감지(Dirty Checking)이 동작해서 데이터베이스에 UPDATE SQL 실행 병합사용 책 자바 ORM 표준 JPA 프로그래밍 병합 동작 방식 1. merge()를 실행한다. 2. 파라미터로 넘어온 준영속 엔티티의 식별자 값으로 1차 캐시에서 엔티티을 조회한다. 2-1 만약 1차 캐시에 엔티티가 없다면 데이터베이스에서 엔티티을 조회하고 1차캐시에 저장한다. 3. 조회한 영속 엔티티(mergeMember)에 member 엔티티 값을 채워 넣는다. (member 엔티티의 모든 값을 mergeMember에 밀어 넣는다. 이때 mergeMember의 회원1 이라는 이름이 "회원명변경"으로 바뀐다) 4. 영속 상태인 mergeMe...



원문링크 : 변경감지 와 병합(merge)