@Transactional로 에러 발생시 Rollback하기
@Transactional annotation을 붙여도 롤백하지 않아서 일일이 job library에 올라온 잡들을 삭제 해야 했었다.
- 지금까지 몰랐던 사실은 @Transactional을 붙이면 unchecked-exception에 대해서만 rollback이 일어난다는것이다.
Rollback이 되는 경우와 안되는 경우의 수
1. @Transactional을 사용하고RuntimeException을 throw할 경우 rollback된다.
2. @Transactional을 사용하고 CheckedException을 throw할 경우 rollback하지 않고 commit한다.
4. @Transactional을 사용하고RuntimeException을 try-catch로 잡는경우 rollback하지 않고 commit한다.