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