SpringMVCトランザクションのロールバック方法
Spring MVC では、@Transactional アノテーションを使用してトランザクションをロールバックできます。 トランザクションをロールバックするには、以下の手順に従います。 1. Spring MVC のコントローラークラスまたはメソッドに @Transactional アノテーションを追加し、メソッドがトランザクションサポートを必要とすることを指示します。 例:
@Controller
@Transactional
public class MyController {
// ...
}
ロールバックが必要な箇所でランタイム例外をスローする。例えば、
public void doSomething() {
// ...
throw new RuntimeException("Something went wrong");
}
Spring は実行時例外がスローされたときに自動的にトランザクションをロールバックします。注意:-トランザクションは RuntimeExceptionとそのサブクラスのみをロールバックします。チェック例外がスローされた場合は、トランザクションロールバックはトリガーされません。-デフォルトでは、トランザクションはRuntimeExceptionとサブクラスがスローされた場合にのみロールバックされます。チェック例外がスローされたときにもトランザクションロールバックをトリガーする必要がある場合は、\@Transactional アノテーションに rollbackFor 属性を追加して、ロールバックする必要がある例外タイプを指定できます。たとえば、\@Transactional(rollbackFor = Exception.class) です。さらに、プログラムによるトランザクション管理を使用してトランザクションをロールバックすることもできます。具体的な実装方法は、Springフレームワークのドキュメントを参照してください。