ホームページ  >  に質問  >  本文

java - Springのトランザクションでマルチスレッドが有効になっているときに例外をキャッチしてロールバックするにはどうすればよいですか?

処理を高速化するためにトランザクションで 2 つのスレッドを使用するとします。userDao.addOrg() メソッドが RuntimeException をスローした場合、トランザクションはロールバックされず、エラーも捕捉されません。どうすればよいですか?右?

リーリー
女神的闺蜜爱上我女神的闺蜜爱上我2686日前1604

全員に返信(1)返信します

  • 世界只因有你

    世界只因有你2017-06-12 09:28:37

    @Transactional はシングルスレッドのトランザクションのみを制御できるため、子スレッドは add メソッドのトランザクションによって制御されません。子スレッドによって呼び出されたメソッドで新しいトランザクションを開始し、ロールバックできます。

    子スレッドがトランザクション制御メソッドを呼び出せるようにします:

    リーリー リーリー

    @Transactional はプロキシを通じて実装されるため、addMethod は新しいクラス AddOperation に配置する必要があり、add メソッドが配置されているクラスには配置できないことに注意してください。

    返事
    0
  • キャンセル返事