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