当前位置: 首页 > news >正文

Java 创建事务的方式

1、使用声明式事务 @Transactional

注意,@Transactional 只回滚RuntimeException和Error,而Exception、IOException是不会回滚的。
所以为了所有异常都能正常回滚,一般会写为:@Transactional(rollbackFor = Exception.class)

2、使用编程式事务

(1)PlatformTransactionManager

@Resource
private PlatformTransactionManager transactionManager;
TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionAttribute());
transactionManager.rollback(status); // 手动回滚
transactionManager.commit(status); // 提交事务
// 也可创建回滚点,回滚部分内容
Object savepoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savepoint);

(2)TransactionTemplate

@Resource
private TransactionTemplate transactionTemplate;transactionTemplate.execute(status1 -> {Object savepoint1 = status1.createSavepoint();status1.rollbackToSavepoint(savepoint1);status1.setRollbackOnly();return null;
});

(3)TransactionAspectSupport

注意,使用TransactionAspectSupport要加入注解@Transactional,不然TransactionAspectSupport.currentTransactionStatus()会扔出报错"No transaction aspect-managed TransactionStatus in scope"

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
// 也可创建回滚点,回滚部分内容
Object savepoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savepoint);
http://www.jsqmd.com/news/59933/

相关文章:

  • 从“访答”出发,深入解析AI对话技术如何重塑信息获取方式
  • P3_安装配置MMSegmentation+预训练语义分割推理预测
  • 2025住人集装箱房生产品牌排名如何?谁在颠覆未来居住?
  • R20-2025年国产活动板房选购指南:领军品牌深度解析
  • langchain4j 学习系列(5)-RAG
  • [linux 交换空间]
  • Alpha冲刺总结报告
  • 20251203周三日记
  • 了解NFSv4中的nfsidmap
  • 你的学习思路有实践导向的优势,但需调整顺序和手段才能更高效成体系!核心结论:先搭建,边做边补原理,再集中突破面试考点,比 “先堆方案再回头学” 更高效。
  • Scrum 冲刺博客_5
  • 2025年11月聚乙烯瓶厂家综合评估与选购指南:十大知名供应商深度解析
  • 2025年12月广东顺德短视频代运营团队优势解读
  • 为什么需要多路召回
  • 2025年11月聚乙烯瓶厂家综合排行榜:权威推荐与选购指南
  • 2025年11月农药瓶供应商排行榜:安徽金汇龙包装位居榜首
  • 2025年11月农药瓶供应商排行榜:安徽金汇龙包装领跑行业
  • (论文阅读)An Image is Worth 32 Tokens for Reconstruction and Generation
  • 2025年11月农药瓶供应商排行TOP10:安徽金汇龙包装领跑行业
  • 某中心与南加州大学联合遴选三位机器学习研究员
  • 酷我音乐APP(手机音乐播放器) v12.0.0.2 去广告破解版
  • Alpha冲刺 - Day 7
  • Alpha冲刺 - Day 6
  • 写的都队-冲刺总结
  • AD25 安装全攻略:Altium Designer 25 下载安装教程 + 激活教程 + 中文设置教程 + PCB 入门
  • 2025年12月欧洲移民,香港移民,土耳其移民机构推荐,政策解读与全流程服务实用指南
  • 为什么使用MATLAB的imnoise函数添加高斯噪声时要将方差除以255^2
  • DVWA SQL Injection—Medium and high(使用sqlmap工具注入)
  • AI元人文:没有AI辅助,价值维度谱何以可能?
  • 完整教程:Kafka 四个选举,Controller 选举、Partition leader 选举、GroupCoordinator 选举、消费组协调器选举详解