프로필 수정 처리 merge 질문입니다.
104
4 asked
강의 잘 듣고있습니다. 현재 service단의 update메서드에는 merge로 병합처리를 하고있지만 accountRepository에서 findById와 같이 수정할 account객체를 찾아내서 영속화를 시켜준뒤에 수정을 하면 dirty checking으로 인한 수정법이 더 안전한 방법일까라고 생각이되서 질문드립니다.
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 이승혁님.
프로필 수정 시, 영속성 관리를 어떻게 할지에 관한 질문을 주셨네요. merge와 dirty checking 모두 데이터 수정을 위한 방식으로 사용되며 각각 장단점이 있습니다.
merge 사용:
merge는 준영속성 상태의 객체를 다시 영속 상태로 변경하는 과정에서 사용됩니다.
- 이것은 객체를 새롭게 만드는 작업을 포함하여, 성능 상의 오버헤드가 발생할 수 있습니다.
- 상태가 확실하지 않은 객체를 업데이트할 때 유용합니다.
findById와 dirty checking 사용:
findById로 영속 상태의 객체를 반환받아 수정을 진행하면, JPA의dirty checking이 동작하여 변경사항이 자동으로 검출되고commit시점에 DB에 반영됩니다.
- 이는 기본적으로 JPA가 엔티티 상태를 유지하고 관리하며, 객체 상태와 데이터베이스 간의 일관성을 보장하는 더 효율적인 방법입니다.
- 변경 사항이 자동으로 반영되기 때문에 직접 저장을 호출할 필요가 없어서 개발자 입장에서는 코드를 더 명확하게 관리할 수 있습니다.
따라서, 이미 식별 가능한 ID가 있는 경우 dirty checking 방식이 더 효율적이고 안전한 방법으로 볼 수 있습니다. JPA의 강력함을 충분히 활용하기 때문입니다.
관련된 질문들은 아래에서 확인하실 수 있습니다:
위 링크들은 프로필 수정 및 영속성에 대한 더 많은 정보와 다른 학습자의 질문 및 답변을 포함하고 있습니다. 이 방법들을 고려하여 상황에 맞게 선택하시는 것을 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
53
1
앱 재시작 후 회원가입
0
99
1
app.host 관련 질문이 있습니다
0
96
1
강의 버전 정보
0
123
1
event, study 참조
0
218
2
비밀번호 변경 로직 질문있습니다.
0
133
1
회원가입 성공 후 redirect이동시 권한 질문
0
489
3
HtmlEmailService 개발하다 생긴 의문입니다
0
247
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
428
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
258
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
233
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
275
1
cropper 오류 문제로 질문드립니다..
0
284
2
authentication관련 질문...
0
493
2
모임참가 취소 할때 로직 질문
0
349
3
안녕하세요 기선님 질문이있습니다..
0
227
1
HTML코드 및 강의 중간자료들
0
677
3
springSecurity
0
518
2
버전 질문입니다.
0
299
1
부트스트랩, css
0
350
2
영속성 컨텍스트 질문
0
245
2
다시 강의를 보니 드는생각..
0
349
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
310
1
세팅 질문있습니다.
0
341
1

