작성
·
417
1
안녕하세요. 항상 좋은 강의 감사드립니다.
새로운 엔터티를 구별하는 방법에서 궁금한 부분이 있어 질문 드립니다.
일반적으로 수정을 위해 findById를 통해 Entity 객체를 영속화 시킨 후 필요한 칼럼을 변경처리 하고 있습니다.
이러면 변경감지를 통해 트랜잭션 종료 구간에서 자동 update 쿼리가 발생이 되는데요...
만약 이 상태에서 repository.save(entity)를 수행하게 되면 혹시 문제가 발생할 만한 포인트가 있는지 궁금합니다.
내부 로직을 보면 아마도 save()에서 SPring Data JPA가 merge를 수행할것 같은데요...
보통 준영속성 상태 객체를 merge하는건 좋은 방법이 아닌것 같지만 이 처럼 findById를 통해 영속화 되어 있는 객체를 merge 하게 되면 혹시나 별도 주의사항이 있지는 않는지 문의 드립니다.
감사드립니다.
답변 2
1
1
안녕하세요. 근일님^^
영속 상태의 엔티티를 merge하게 되면 무시합니다.
trace 레벨로 로그를 찍어보시면
Ignoring persistent instance 라는 메시지를 확인할 수 있습니다.
merge cascade가 설정되어 있는 경우에는 merge cascade가 발생할 수 있습니다.
그런데 어떤 이유 때문에 이렇게 사용하고 싶으신건지요?
감사합니다.
네^^;;