인프런 커뮤니티 질문&답변
[API개발 기본 -> 회원수정API] 강의에 대한 질문입니다.
작성
·
175
0
안녕하세요, 유익한 강의 잘듣고있습니다.
다름이 아니라 이해가 안되는 부분이 있어서 글을 올립니다.
public UpdateMemberResponse updateMemberV2(
@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) {
memberService.update(id, request.getName()); //--> ①번
//--> 디버그 브레이크 포인트를 걸어놓은 상태에서 name 필드 강제로 변경 //-->②번
Member findMember = memberService.findOne(id);//-->③번
return new UpdateMemberResponse(findMember.getId(), findMember.getName());
}
①번 소스가 실행 ( member테이블의 name필드를 '홍길동1' 값으로 변경 )
1) begin tran 실행 확인
2) select * frm member where id=17 --//실행확인
3) update member set name='홍길동1' where id=17 --//실행확인
4) commit tran 실행확인
②번 소스에서 브레이크 포인트 설정
1) member 테이블 강제로 업데이트 실행
update member set name='초기화' where id=17
③번 소스실행
1) 데이터베이스에서 select 문장이 실행되지 않음 확인 : name 값은 '홍길동1' 으로 조회가 됩니다.
# 위의 확인 내용에 대한 질문사항입니다.
1) ①번과 ③번은 별도의 트렌젝션에서 실행되었는데, ③번소스 에서는 왜? 데이터베이스에 쿼리가 실행되지 않는 것인가요?
2) ③번소스 에서 강제로 데이터베이스에서 Select가 실행하여 최신데이터를 받아오고싶은경우 어떻게 해야하나요?
답변 1
0
안녕하세요. 박정식님^^
공부를 제대로 하셨군요^^!
JPA 관련해서 이제 마지막 퍼즐이 하나 남았습니다. 이번 강의 끝 부분에 OSIV와 성능 최적화 부분을 공부해보시면 궁금증이 풀리실거에요.
화이팅!





