//注入平台事务管理器(springboot已经帮我们自动装配,只用注入就好)
@Resource
PlatformTransactionManager platformTransactionManager;
//创建一个事务配置对象
DefaultTransactionDefinition dt= new DefaultTransactionDefinition();
//根据需求,选择不同的事务传播行为
//例如:嵌套事务 PROPAGATION_REQUIRES_NEW 每次开启一个新的事务
dt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
//获取事务状态
TransactionStatus transactionStatus = platformTransactionManager.getTransaction(dt);
try{
//提交事务
platformTransactionManager.commit(transactionStatus);
}
catch(Exception e){
//回滚事务
platformTransactionManager.rollback(transactionStatus);
}
在应用过程中发现事务没有回滚:
原因在于引入了多数据源配置,没有把两个数据表操作放到同一个数据源下导致。
将mapper放到了同一个包下,问题解决