변경감지와 병합

  1. 트랜잭션 커밋 → 내부 플러시 호출
  2. 엔티티와 스냅샷을 비교
  3. 변경된 엔티티가 있으면 update쿼리를 생성하여 lazy SQL 저장송 저장
  4. 저장소의 SQL를 데이터베이스에 전달
  5. 데이터 베이스 트랜잭션 커밋

병합 merge()

준영속 상태의 엔티티를 다시 영속 상태로 변경

Member mergeMember = em.merge(member);

단점

  1. 모든 속성이 변경
  2. 병합시 해당 값이 없다면 모두 null로 업데이트 된다.

변경감지를 활용하자.