@Transactional로 에러 발생시 Rollback하기

Kyle_Kim·2022년 8월 21일
0

@Transactional annotation을 붙여도 롤백하지 않아서 일일이 job library에 올라온 잡들을 삭제 해야 했었다.

- 지금까지 몰랐던 사실은 @Transactional을 붙이면 unchecked-exception에 대해서만 rollback이 일어난다는것이다.

Rollback이 되는 경우와 안되는 경우의 수

1. @Transactional을 사용하고RuntimeException을 throw할 경우 rollback된다.

2. @Transactional을 사용하고 CheckedException을 throw할 경우 rollback하지 않고 commit한다.

3. @Transactional(rollbackFor = DataFormatException.class)을 사용하면 DataFormatException 을 throw 했을때 롤백이 된다.

4. @Transactional을 사용하고RuntimeException을 try-catch로 잡는경우 rollback하지 않고 commit한다.

profile
Make Things Right

0개의 댓글