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