@Transactional(rollbackFor = MyCheckedException.class)
public void foo() {
throw new RuntimeException();
}
Will this transaction get rolled
No need to include RuntimeException
in rollbackFor
list. It will handle that even if you do not mention it.
I've tried it out for jdbcTemplate:-
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = MyException.class)
public void updateSalary(final int increment){
jdbcTemplate.update("update EMPLOYEE set emp_salary = emp_salary + ?", increment);
throw new RuntimeException("update exception");
}
Output: After Insertion: 1 Deepak 35000 2 Yogesh 35000 3 Aditya 35000 update exception After Update 1 Deepak 35000 2 Yogesh 35000 3 Aditya 35000