实体方法 事务的使用

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

实体方法 事务的使用

例子:

A方法事务属性: Supports  B方法标准的Save: Required

A方法 集合循环批量调用 Save 想实现 出现错误的数据回滚,然后继续逻辑。

出现就是两条数据,第一条报错了,第二条正常。在数据库两条都存在。
解决:Save方法不能直接调用,而是通过工厂类获取服务来调用,这样就不是同一个对象了。

同一个类中方法调用方法事务不生效。

借鉴博客大佬回答:

  1. Spring采用动态代理(AOP)实现对bean的管理和切片,它为我们的每个class生成一个代理对象。只有在代理对象之间进行调用时,可以触发切面逻辑。而在同一个class中,方法B调用方法A,调用的是原对象的方法,而不通过代理对象。所以Spring无法切到这次调用,也就无法通过注解保证事务性了。

(记录一下,BUG太难了,如有不对欢迎指出)


实体方法 事务的使用

例子:A方法事务属性: Supports B方法标准的Save: RequiredA方法 集合循环批量调用 Save 想实现 出现错误的数据回滚,然后继续逻辑...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息