パッケージ org.springframework.dao
@NonNullApi @NonNullFields パッケージ org.springframework.dao
使用中のデータアクセスアプローチに依存しない高度なエラー処理を可能にする例外階層。例: DAO およびデータアクセスフレームワークがこのパッケージ(およびカスタムサブクラス)の例外を使用する場合、呼び出しコードは、JDBC などの特定のデータアクセス戦略に縛られることなく、デッドロックなどの一般的な問題を検出して処理できます。
これらの例外はすべてチェックされていません。つまり、呼び出しコードはそれらをキャッチせず、すべてのデータアクセス例外を致命的なものとして扱うことができます。
このパッケージのクラスについては、Rod Johnson による実践 J2EE システムデザインの第 9 章(Wrox、2002)で説明されています。
- 例外クラス説明更新中(「更新の選択」ステートメントなど)にロックを取得できなかった場合にスローされる例外。使用すべきではありません。使用すべきではありません。6.0.3 の時点で、コア JDBC/ORM サポート内で使用されていないためさまざまなデータアクセスの同時実行エラーでスローされる例外。実践 J2EE システムデザインで説明されているデータアクセス例外の階層のルート。リソースが完全に失敗したときにスローされるデータアクセス例外: たとえば、JDBC を使用してデータベースに接続できない場合。SQL ステートメントの実行を試行して指定されたデータをマップできなかった場合にスローされる例外です。通常は、データの挿入または更新によって整合性制約違反が発生しますが、これに限定されません。既知の識別子を使用して特定のデータを検索する場合など、特定の予期されたデータを取得できなかった場合にスローされる例外。使用すべきではありません。6.0.3 の時点で、
PessimisticLockingFailureException
/CannotAcquireLockException
を推奨データを挿入または更新しようとすると、主キーまたは一意性制約に違反した場合にスローされる例外。結果に少なくとも 1 つの行(または要素)があると予想されたが、実際にはゼロ行(または要素)が返された場合にスローされるデータアクセス例外。結果が期待されたサイズではなかった場合、たとえば単一の行を期待しているが 0 または 1 つ以上の行を取得している場合にスローされるデータアクセス例外。更新で意図しないことが発生したように見えるが、トランザクションがまだロールバックされていない場合にスローされるデータアクセス例外。実行前にコンパイルが必要なクエリオブジェクトの「コンパイル」に失敗するなど、API の誤った使用でスローされる例外。データアクセスリソースを誤って使用した場合にスローされる例外のルート。非一時的と見なされるデータアクセス例外の階層のルート - 例外の原因が修正されない限り、同じ操作の再試行は失敗します。リソースが完全に失敗し、失敗が永続的な場合にスローされるデータアクセス例外。楽観的ロック違反でスローされた例外。基になるリソースが特定のデータベーステーブルなどの特定の要素へのアクセス許可を拒否した場合にスローされる例外。悲観的ロック違反でスローされた例外。クエリタイムアウトでスローされる例外。アプリケーションがいくつかの回復手順を実行し、トランザクション全体または分散トランザクションの場合はトランザクションブランチを再試行すると、以前に失敗した操作が成功する可能性がある場合にスローされるデータアクセス例外。一時的と見なされるデータアクセス例外の階層のルート - アプリケーションレベルの機能による介入なしで操作が再試行されると、以前に失敗した操作が成功する可能性があります。リソースが一時的に失敗し、操作を再試行できる場合にスローされるデータアクセス例外。Java 型とデータベース型の不一致でスローされる例外: たとえば、RDBMS 列に間違った型のオブジェクトを設定しようとした場合。通常のスーパークラスでは、「基礎となるリソースに問題が発生しました」以外の具体的なものを区別できません。たとえば、JDBC からの SQLException など、より正確に特定することはできません。
PessimisticLockingFailureException
/CannotAcquireLockException
を推奨