アプリケーションに 2 つの異なる API を統合するときに問題に直面しました。問題は、異なるデータ ソース (MSSQL) とトランザクション テンプレートを備えた異なる Spring トランザクション マネージャーを使用していることです。Spring トランザクション マネージャーは、Bean を使用せずにプログラムで作成されます。
メソッドのスニペットは次のとおりです。
public void f(){
...
getManager().deployWorkingCopy(userId, toDeploy); //API1, TransactionManager1, DataSource1
List<User> users = umApi.loadAllUsers();
List<Group> groups = umApi.loadAllGroups();
for(User user : users){
umSynchronization.synchronizeUser(user); //API2, TransactionManager2, DataSource2
}
for(Group group : groups){
umSynchronization.synchronizeGroup(group); //API2, TransactionManager2, DataSource2
}
}
私の質問は、これらのクエリを 1 つのトランザクションで実行することは可能ですか? どのように?