JPA Merge, Dirty Check
starryeye:
이번 포스트에서 다룰 주제는 JPA 의 Merge, Dirty Check 에 대해서이다. merge() 에 대해서 데이터 업데이트 용도로 쓰면 위험하므로 권장하지 않는 방법이다. 왜 이런말이 나왔을까..위 코드는 Spring Data Jpa 의 SimpleJpaRepository 의 Save 메서드 정의 부분이다. Jpa 를 잘 모르고 사용하면.. 데이터 업데이트를 위해서 비/준영속 상태의 엔티티로 save 를 호출해버린다면 merge 를 호출한 상황이 발생하기 때문이다. 참고> isNew() 에 대해서.. 알아보자 JPA 식별자 생성 전략이 @GenerateValue 이면, save() 호출 시점에 식별자가 없으므로 새로운 엔티티로 인식해서 persist() 로 로직이 흘러간다.. 하지만.. JPA 식..