@FunctionalInterfaceSE public interface SQLExceptionTranslator
SQLExceptions
SE と Spring のデータアクセス戦略にとらわれない DataAccessException
階層間の変換のための戦略インターフェース。 実装は汎用的(たとえば、JDBC の SQLState
SE コードを使用)にすることも、完全に独自仕様(たとえば、Oracle エラーコードを使用)にすることもできます。
DataAccessException
修飾子と型 | メソッドと説明 |
---|---|
DataAccessException | translate(StringSE task, StringSE sql, SQLExceptionSE ex) 指定された SQLException SE を汎用 DataAccessException に変換します。 |
@Nullable DataAccessException translate(StringSE task, @Nullable StringSE sql, SQLExceptionSE ex)
SQLException
SE を汎用 DataAccessException
に変換します。 返された DataAccessException には、根本原因として元の SQLException
が含まれているはずです。ただし、DataAccessExceptions は他のリソース API が原因である可能性があるため、クライアントコードは通常これに依存しない場合があります。とはいえ、JDBC ベースのアクセスが発生することを予期している場合、getRootCause() instanceof SQLException
チェック(およびその後のキャスト)は信頼できると見なされます。
task
- 試行されているタスクを説明する読み取り可能なテキスト sql
- 問題を引き起こした SQL クエリまたは更新 (既知の場合)ex
- 問題のある SQLException
SQLException
をラップする DataAccessException、または特定の変換を適用できない場合は null
NestedRuntimeException.getRootCause()