利用 PlatformTransactionManager 可做到手动控制事务回滚,
本示例是在Service层注入
@Resource
private PlatformTransactionManager transactionManager;
在需要进行事务操作前初始化事务
@Resource
private PlatformTransactionManager transactionManager;
TransactionStatus status = null;
// 手动开启事务初始化
status = transactionManager.getTransaction(new DefaultTransactionDefinition());
//操作
try{
// 数据库完成操作后(例如业务上需先删除数据,再新增)
// 操作无异常:提交事务
transactionManager.commit(status);
}catch (Exception e){
// 捕获异常时 事务回滚(避免先删除了数据在后续的操作中报错使得新增失败,而数据又被删了)
transactionManager.rollback(status);
}
方法示例:先初始化事务1,进行数据库操作时,若无异常,提交事务 2.。若捕获异常,回退事务 3。
结束~
有用上的麻烦给点个赞哈哈!