2017-08-31 15 views
0

@Transacationalと注釈されたサービス方法があります。このメソッドでは、いくつかの削除操作を実行し、新しいスレッドを生成し、さらにいくつかのエントリを削除した後に行います。後で例外がある場合。 DBが矛盾した状態になるのは、削除されたエントリがほとんどないからです。スレッドにトランザクションを伝播できますか?私はこれにいくつかのarticleを読んだが成功できなかった。春の注釈@複数のスレッドの取引

+0

正確ではありません – Raju

+0

私は既に解決策を述べた記事を共有しました(成功していないにもかかわらず)。しかし、stackoverflowの投稿では、それは可能ではないと述べた。 – Raju

答えて

0

バネのトランザクションステータスはスレッドローカルに格納されます。 org.springframework.transaction.support.TransactionSynchronizationManagerクラス。したがって、元の削除スレッドから設定されたトランザクション関連のスレッドローカル値は、他の生成された削除スレッドにアクセスすることはできません。

@Transactionalアノテーションを有効にするには、スレッドを春に管理する必要があります。スレッドThreadPoolTask​​Executorからスレッドを生成する必要があります。