- 配置好Spring事务之后(Spring事务配置,可参见其它文件),我们可以简单的添加一个注释@Transactional实现事务, 但是如果方法中Catch了异常,此异常没有抛出,那么事务将不会生效。
- 可以在Catch中加入如下代码实现事务回滚功能:
@Transactional(rollbackFor = Exception.class) public Result test() { try { // biz } catch(Exception e) { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } return ... }
-
除此方法外,还有另外一种方式手动控制事务的回滚,提交:
DefaultTransactionDefinition def = new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRES_NEW); TransactionStatus status = transactionManager.getTransaction(def); try { // biz transactionManager.commit(status); } catch (Exception e) { transactionManager.rollback(status); }
Spring手动管理事务提交、回滚
最新推荐文章于 2024-05-22 17:33:30 发布