Spring Boot 手动使用事务PlatformTransactionManager

SpringBoot 数据库事务管理

  1. public方法或public类加上注解@Transactional,spring boot自动管理事务的开启,提交和回滚。private无效。
  2. 手动开启事务,提交和管理

添加依赖

    compile "org.springframework.boot:spring-boot-starter-data-jpa"

在service层注入PlatformTransactionManager和TransactionDefinition

	@Autowired
	PlatformTransactionManager platformTransactionManager;

	@Autowired
	TransactionDefinition transactionDefinition;
  • 注意:使用配置的数据源时,注入PlatformTransactionManager ;如注入DataSourceTransactionManager,则会在spring boot启动过程中报错:找不到DataSourceTransactionManager的Bean。原因尚不清楚,项目中spring boot的版本是1.5.22

手动提交多个事务

//手动开启第一个事务
	TransactionStatus transactionStatusSaveData1 = platformTransactionManager.getTransaction(transactionDefinition);
	try {
		saveData();
		...
        //手动提交事务
        platformTransactionManager.commit(transactionStatusSaveData1);
 	} catch (Exception e) {
        e.printStackTrace();
        //手动回滚事务
        platformTransactionManager.rollback(transactionStatusSaveData1 );
    }
	//手动开启第二个事务
    TransactionStatus transactionStatusSaveData2 = platformTransactionManager.getTransaction(transactionDefinition);
    try {
        saveData();
        ...
        //手动提交事务
        platformTransactionManager.commit(transactionStatusSaveData2);
	} catch (Exception e) {
        e.printStackTrace();
        //手动回滚事务
        platformTransactionManager.rollback(transactionStatusSaveData2);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值