강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박정식님의 프로필 이미지
박정식

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[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와 성능 최적화 부분을 공부해보시면 궁금증이 풀리실거에요.

화이팅!

박정식님의 프로필 이미지
박정식

작성한 질문수

질문하기