작성
·
23
0
강의 잘 듣고있습니다. 현재 service단의 update메서드에는 merge로 병합처리를 하고있지만 accountRepository에서 findById와 같이 수정할 account객체를 찾아내서 영속화를 시켜준뒤에 수정을 하면 dirty checking으로 인한 수정법이 더 안전한 방법일까라고 생각이되서 질문드립니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이승혁님.
프로필 수정 시, 영속성 관리를 어떻게 할지에 관한 질문을 주셨네요. merge
와 dirty checking
모두 데이터 수정을 위한 방식으로 사용되며 각각 장단점이 있습니다.
merge 사용:
merge
는 준영속성 상태의 객체를 다시 영속 상태로 변경하는 과정에서 사용됩니다.findById와 dirty checking 사용:
findById
로 영속 상태의 객체를 반환받아 수정을 진행하면, JPA의 dirty checking
이 동작하여 변경사항이 자동으로 검출되고 commit
시점에 DB에 반영됩니다.따라서, 이미 식별 가능한 ID
가 있는 경우 dirty checking 방식이 더 효율적이고 안전한 방법으로 볼 수 있습니다. JPA의 강력함을 충분히 활용하기 때문입니다.
관련된 질문들은 아래에서 확인하실 수 있습니다:
위 링크들은 프로필 수정 및 영속성에 대한 더 많은 정보와 다른 학습자의 질문 및 답변을 포함하고 있습니다. 이 방법들을 고려하여 상황에 맞게 선택하시는 것을 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.