私はAndroidアプリでデータベースを管理するためにORMLiteを使用していますが、それはかなりうまく機能しています。ただし、データを更新しようとすると、制約に関する例外が含まれる場合があります。例外は、callBatchTasks()を呼び出している場所まで追跡するのに役立ちました。
それは実際にはその時点での一連の3回の呼び出しです。最初の呼び出し2は、Table1とTable2を更新します。最後の呼び出しは、Table1とTable2の間の関係を指定するために使用されるテーブル(Table3)を更新します(したがって、制約があります)。これは例外を取得するものです。
table1Dao.callBatchTasks(table1task);
table2Dao.callBatchTasks(table2task);
table3Dao.callBatchTasks(table3task); // Exception here
タスクが実装されcallable
ているので、それぞれが別々のスレッドで実行されると思います。したがって、table3taskが他のタスクよりも進んでいる場合、制約の問題が発生します。これは本当ですか?もしそうなら、それらが順番に実行されるように推奨される回避策は何ですか?