今天遇到一个场景,需要 update 多个数据源的数据。
假如数据源 A,有三天 update 语句分别为 a,b,c,数据源 B 的 update 语句为 d,e。
配置了两个transactionManagerA
跟transactionManagerB
分别对应数据源 A 跟数据源 B。
我在 service 中的代码例子:
@Transactional(transationManager = "transactionManagerA",rollback = Exception.class)
public void updateA(){
a();
b();
c();
updateB();
}
//另一个类或者 AopContext.currentProxy()
@Transactional(transationManager = "transactionManagerB",rollback = Exception.class)
public void updateB(){
d();
e();
}
这样场景下,假如 d 或者 e 出现异常,那么 updateA 也将会 rollback,是不是可以呢?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.