在实际的项目中,经常会遇到以下情况:一个service方法里包含多个对数据库的操作,例如保存操作,如果其中某一个出现了问题,没有操作成功,那么理论上其他的操作都作废,但是如果按照一般的顺序进行保存的时候,就做不到这点。
所以这种时候就应该使用事物来进行处理,一种使用比较简单的方法是在方法上面加上@Transactional(rollbackFor = {Exception.class}),然后使用try catch来进行异常的捕获,在catch里面进行手动的事物回滚,即TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();