'クリーンアーキテクチャ'では、インタラクタ(ユースケース)がビジネスロジックを定義します。例のほとんどは、このような方法で、ユースケースを定義します。クリーンなアーキテクチャ - データベーストランザクションに対処する方法?
public MyUseCase() {
public boolean execute(...) {
int id = repository.insert(a)
if(id > 0) {
b.aId= id;
repository.insert(b);
...
}
}
}
インターアクターは、リポジトリ上の操作やクエリなどのほとんどは、単純なCRUDを使用しています。 上記の例はシンプルな場合と同期していますが、コールバックやrxjavaなどの非同期ソリューションを使用して同じ手法でreposを見つけることができます。
しかし、ユースケースの不公平はどうですか?たとえば、a
を挿入した後も、b
を挿入してもまだそこにあることを100%保証することはできません。 a
を挿入した後で、b
を挿入しているときにRepositoryExceptionが発生する場合はどうなりますか?私がこれまで見てきた
すべてのレポを考慮に入れ、それを取ることはありませんので、私の質問は次のとおりです。
クリーンなアーキテクチャでは、上記の問題の解決策は何ですか?