EAS_在controllerBean中调用其他方法,发生异常后,事务没有回滚
首先列出例子如下:在一个方法中,执行了多个逻辑,第一部分是调用退票逻辑,第二部分是执行其他业务,这里我们遇到问题,退票逻辑执行成功,但是后面的代码异常,这时我们需要的是退回所有执行,
这时我们就需要认清facade中的事务属性:
就是EJB规范的6种事务属性:
Required: 要求有事务: 如果已有事务,则在当前事务中进行;如果没有,就新建事务;
RequiredNew: 要求有事务: 不管原来有没有事务,都新建事务,在新事务环境中执行。
Mandatory: 要求有事务:如果原来没有事务,即抛异常。
Supports: 可支持事务:如果原来有事务,就在当前事务中进行;如果没有,就不新建事务,即可在事务环境中进行。
NotSupports: 无事务:如果原来有事务,则先挂起事务,继续在无事务环境中执行; 如果原来没有事务, 则可继续执行。
Never:不支持事务: 如果原来有事务,则抛异常; 如果没有,则可继续执行。
一般标准方法 save,update 等事务属性都设置的required,这里我们如果想实现上面的要求,就可以将这个方法的事务属性也设置为“required”就可以了
拓展:若果想实现这个退票里面发生了异常,因为在一个for循环里调用的这个方法,我们不想影响下一次循环的执行,我们可以catch这个异常不处理,也可以参考我的另一篇博客:https://www.cnblogs.com/ketoli/p/17124096.html
linux下的docker操作命令及异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2021-07-28 vue数组判断数值,遍历,过滤