2022 08 11
2022-08-11¶
Transcation 롤백 at Exception¶
- 참고: https://techblog.woowahan.com/2606/
- 개요
- 스프링의 선언적 트랜잭션
@Transactional안에서 잡은 예외는 롤백 없이 커밋되는게 맞지 않나?- RuntimeException이 발생하면 롤백되는게 국룰
- CheckedException은 예상된 에러라 롤백 안하고
- UncheckedException은 예상 못한 에러라 롤백하고
- 근데 try-catch로 감싸주면 롤백 안되지 않을까?
- RuntimeException이 발생하면 롤백되는게 국룰
- 그런데 Rollback 예외가 발생하면서 롤백됨!
- 스프링의 선언적 트랜잭션
- 이유
marked as rollback-only- 예외가 RuntimeException이면 롤백함
- 근데 처음에 롤백 바로되는게 아니라 최상위 트랜잭션까지 와서 롤백됨
- 이유는 isLocalRollbackOnly = false 가 디폴트이기 때문
- 결론
- 참여중인 일부 트랜잭션이 실패할 때 전체 다 롤백하는 것은 의도된 행동