작성
·
411
1
궁금한게 19분19초쯤 insert랑 update쿼리 나오는데
order.setUsername("정상"); 이 코드는 insert쿼리에 그리고
order.setPayStatus("완료"); 이 코드는 update쿼리에 쓰이는 건가요
답변 1
1
안녕하세요. alrnr3521님, 공식 서포터즈 OMG입니다.
"정상"의 경우 예외가 발생하지 않아(if-else 비교문에서 예외가 발생(throw new ~)하는 로직을 타지 않아 롤백 되지 않고 커밋이 되어 insert 쿼리가 발생한 것이고
"완료"도 마찬가지로 트랜잭션에서 엔티티의 값의 변경이 발생할 경우 Update쿼리가 발생한 것입니다.
본 강의에서의 핵심은 예외가 발생하지 않았을 때 롤백되지 않고 정상적으로 JPA의 동작들이 실행된 것으로 이해하시면 될 것 같습니다.
19분 뒤 테스트에서 정상과 완료가 아닌 경우에서 어떠한 쿼리가 발생하였는지 확인해보시면 좋을 것 같아요.
감사합니다.