spring 事务手动提交

在使用Spring声明式事务时,不需要手动的开启事务和关闭事务,但是对于一些场景则需要开发人员手动的提交事务,比如说一个操作中需要处理大量的数据库更改,可以将大量的数据库更改分批的提交,又比如一次事务中一类的操作的失败并不需要对其他类操作进行事务回滚,就可以将此类的事务先进行提交,这样就需要手动的获取Spring管理的Transaction来提交事务。

1 
 2     
 3 
 4 
 5 
 6     
 7         
 8         
 9         
10         
11         
12         
13     
14 
15 
16 
17     
18     
19 
// name的值根据spring配置文件的事物管理器的id而定
1 @Resource(name="transactionManager")
 2 private DataSourceTransactionManager transactionManager;
 3 
 4 DefaultTransactionDefinition transDefinition = new DefaultTransactionDefinition();
 5 //开启新事物
 6 transDefinition.setPropagationBehavior(DefaultTransactionDefinition.PROPAGATION_REQUIRES_NEW);
 7 TransactionStatus transStatus = transactionManager.getTransaction(transDefinition);
 8 try {
 9     //TODO
10     transactionManager.commit(transStatus);
11 } catch (Exception e) {
12     transactionManager.rollback(transStatus);
13 }

 

你可能感兴趣的:(spring 事务手动提交)