Spring Boot

Spring トランザクション

@Transactional、propagation、isolation、rollback、PlatformTransactionManager によるトランザクション管理

30 面接問題·
Senior
1

Spring における @Transactional アノテーションの主な役割は何ですか?

回答

@Transactional は、メソッドがトランザクションコンテキスト内で実行されるべきことを示し、データベース操作のアトミック性を保証します。Spring はクラスの周囲に AOP proxy を自動的に作成し、トランザクションの開始、commit、rollback を処理します。この宣言的なアプローチは、TransactionTemplate や PlatformTransactionManager を使った手動プログラミングと比べてトランザクション管理を大幅に簡素化します。

2

@Transactional のデフォルトの propagation タイプは何ですか?

回答

Propagation.REQUIRED がデフォルトの propagation タイプです。この戦略では、Spring は既存のトランザクションが存在すればそれに参加し、存在しなければ新しいものを作成します。これはほとんどのユースケースで最も一般的かつ直感的な動作であり、データベース操作に対して常にトランザクションが存在することを保証します。

3

@Transactional メソッド内で RuntimeException がスローされると何が起こりますか?

回答

デフォルトでは、RuntimeException(または Error)がスローされると Spring は自動的にトランザクションを rollback します。これにより、予期しないエラーが発生した場合にデータベースの変更が取り消されることが保証されます。一方、checked 例外(Exception を継承するが RuntimeException ではないもの)は、rollbackFor で明示的に指定しない限り、デフォルトでは rollback をトリガーしません。

4

@Transactional アノテーションはどこに適用できますか?

5

Propagation.REQUIRES_NEW はどのような動作をしますか?

+27 面接問題

次の面接に向けてSpring Bootをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める