84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
処理を高速化するためにトランザクションで 2 つのスレッドを使用するとします。userDao.addOrg() メソッドが RuntimeException をスローした場合、トランザクションはロールバックされず、エラーも捕捉されません。どうすればよいですか?右?
@Transactional はシングルスレッドのトランザクションのみを制御できるため、子スレッドは add メソッドのトランザクションによって制御されません。子スレッドによって呼び出されたメソッドで新しいトランザクションを開始し、ロールバックできます。
子スレッドがトランザクション制御メソッドを呼び出せるようにします:
@Transactional はプロキシを通じて実装されるため、addMethod は新しいクラス AddOperation に配置する必要があり、add メソッドが配置されているクラスには配置できないことに注意してください。
@Transactional はシングルスレッドのトランザクションのみを制御できるため、子スレッドは add メソッドのトランザクションによって制御されません。子スレッドによって呼び出されたメソッドで新しいトランザクションを開始し、ロールバックできます。
子スレッドがトランザクション制御メソッドを呼び出せるようにします:
リーリー リーリー@Transactional はプロキシを通じて実装されるため、addMethod は新しいクラス AddOperation に配置する必要があり、add メソッドが配置されているクラスには配置できないことに注意してください。