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

alrnr3521님의 프로필 이미지
alrnr3521

작성한 질문수

스프링 DB 2편 - 데이터 접근 활용 기술

예외와 트랜잭션 커밋, 롤백 - 활용

쿼리

작성

·

411

1

궁금한게 19분19초쯤 insert랑 update쿼리 나오는데

order.setUsername("정상"); 이 코드는 insert쿼리에 그리고

order.setPayStatus("완료"); 이 코드는 update쿼리에 쓰이는 건가요

답변 1

1

안녕하세요. alrnr3521님, 공식 서포터즈 OMG입니다.

"정상"의 경우 예외가 발생하지 않아(if-else 비교문에서 예외가 발생(throw new ~)하는 로직을 타지 않아 롤백 되지 않고 커밋이 되어 insert 쿼리가 발생한 것이고

 

"완료"도 마찬가지로 트랜잭션에서 엔티티의 값의 변경이 발생할 경우 Update쿼리가 발생한 것입니다.

 

본 강의에서의 핵심은 예외가 발생하지 않았을 때 롤백되지 않고 정상적으로 JPA의 동작들이 실행된 것으로 이해하시면 될 것 같습니다.

 

19분 뒤 테스트에서 정상과 완료가 아닌 경우에서 어떠한 쿼리가 발생하였는지 확인해보시면 좋을 것 같아요.

 

감사합니다.

alrnr3521님의 프로필 이미지
alrnr3521

작성한 질문수

질문하기