84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
1. Spring トランザクションはロールバックされません。すべてのオンライン方法を試しましたが、役に立ちませんでした。 2. 構成は次のとおりです:
これを見ると、コントローラーではなくサービスインターフェイスでトランザクションを管理していますスローする例外はコントローラー内にあり、もちろんトランザクションはロールバックされません
それをサービス実装クラスに保存しようとして、保存が成功したかどうかを確認するために例外をスローします
追記: mysql には 2 つのストレージ エンジン (一般的に使用されます) があり、1 つは InnoDB で、もう 1 つは MyISAM です。前者は行レベルのロック、トランザクション、外部キーをサポートしますが、後者はサポートしません
上で言ったことは正しいです。スプリングトランザクションはサービス層で動作し、サービスメソッドが例外をスローすると、トランザクションはロールバックされます。したがって、正しいテスト方法は、サービス層メソッドで例外をスローすることです。
これを見ると、コントローラーではなくサービスインターフェイスでトランザクションを管理しています
スローする例外はコントローラー内にあり、もちろんトランザクションはロールバックされません
それをサービス実装クラスに保存しようとして、保存が成功したかどうかを確認するために例外をスローします
追記: mysql には 2 つのストレージ エンジン (一般的に使用されます) があり、1 つは InnoDB で、もう 1 つは MyISAM です。前者は行レベルのロック、トランザクション、外部キーをサポートしますが、後者はサポートしません
。上で言ったことは正しいです。スプリングトランザクションはサービス層で動作し、サービスメソッドが例外をスローすると、トランザクションはロールバックされます。したがって、正しいテスト方法は、サービス層メソッドで例外をスローすることです。