Does Specifying @Transactional rollbackFor Also Include RuntimeException

后端 未结 3 639
感情败类
感情败类 2020-12-17 09:29
@Transactional(rollbackFor = MyCheckedException.class)
public void foo() {
    throw new RuntimeException();    
}

Will this transaction get rolled

3条回答
  •  北海茫月
    2020-12-17 10:14

    So it can roll back with CheckedException as well (RuntimeException by default), example:

    @Transactional(rollbackFor = Exception.class)
    public void save(Book book) throws Exception {
        bookRepository.save(book);
        System.out.println("Saved in transcation.");
        // No data is persisted
        if (true) {
            throw new Exception();
        }
    }
    

提交回复
热议问题