有时候在代码编写过程中,会有一些特殊情况,不能等事务自动提交,而是需要手动将事务提交,那么在spring中如何手动开启一个新事务,并提交呢?
@Autowired
private PlatformTransactionManager transactionManager;// 引入 (平台)事务管理器,Spring 事务策略的核心。
public void test() {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);//新发起一个事务
TransactionStatus status = transactionManager.getTransaction(def);// 获得事务状态
try {
// 业务代码
transactionManager.commit(status);// 手动提交事务
}catch (Exception e){
// 异常的时候回滚
transactionManager.rollback(status);
}
}
已经验证可用
还在test补充项目中 可以搜索
public void testshiwu