今天在学习spring的事务中遇到了一个小问题于@Transactional注解方法中使用try catch()不回滚,发现解决方法如下。
在@Transactional的使用中,只有方法抛出了异常,事务才会进行回滚,而如果异常被try捕获,在catch中又未抛出,事务就不会回滚
public void transfer(int id_1,int id_2,int money) { try { accountDao.increase(id_1,money); int i = 1/0; accountDao.decrease(id_2,money); } catch (Exception e) { throw e;//如若不抛出,则不会回滚 } }