public class SQLErrorCodeSQLExceptionTranslator extends AbstractFallbackSQLExceptionTranslator
SQLExceptionTranslator
の実装。SQL 状態に基づいた実装よりも正確ですが、ベンダー固有のものです。このクラスは、次の一致ルールを適用します。
SQLStateSQLExceptionTranslator
はデフォルトのフォールバックトランスレータであり、例外の SQL 状態のみを分析します。独自の SQLException
サブクラス階層を導入する Java 6 では、デフォルトで SQLExceptionSubclassTranslator
を使用します。SQLExceptionSubclassTranslator
は、特定のサブクラスが発生しない場合、Spring 自身の SQL 状態変換にフォールバックします。"sql-error-codes.xml" という名前の構成ファイルは、デフォルトでこのパッケージから読み取られます。Spring JDBC パッケージが同じ ClassLoader からロードされている限り、クラスパスのルート("/WEB-INF/classes" ディレクトリなど)にある同じ名前のファイルを介してオーバーライドできます。
SQLErrorCodesFactory
, SQLStateSQLExceptionTranslator
logger
コンストラクターと説明 |
---|
SQLErrorCodeSQLExceptionTranslator() JavaBean として使用するコンストラクター。 |
SQLErrorCodeSQLExceptionTranslator(DataSourceSE dataSource) 指定された DataSource の SQL エラーコードトランスレーターを作成します。 |
SQLErrorCodeSQLExceptionTranslator(SQLErrorCodes sec) これらのエラーコードを指定して、SQLErrorCode トランスレーターを作成します。 |
SQLErrorCodeSQLExceptionTranslator(StringSE dbName) 指定されたデータベース製品名の SQL エラーコードトランスレータを作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
protected DataAccessException | createCustomException(StringSE task, StringSE sql, SQLExceptionSE sqlEx, ClassSE<?> exceptionClass) CustomSQLErrorCodesTranslation 定義の特定の例外クラスに基づいて、カスタム DataAccessException を作成します。 |
protected DataAccessException | customTranslate(StringSE task, StringSE sql, SQLExceptionSE sqlEx) サブクラスはこのメソッドをオーバーライドして、 SQLException SE から DataAccessException へのカスタムマッピングを試みることができます。 |
protected DataAccessException | doTranslate(StringSE task, StringSE sql, SQLExceptionSE ex) 指定された例外を実際に変換するためのテンプレートメソッド。 |
SQLErrorCodes | getSqlErrorCodes() このトランスレータが使用するエラーコードを返します。 |
void | setDatabaseProductName(StringSE dbName) このトランスレーターのデータベース製品名を設定します。 |
void | setDataSource(DataSourceSE dataSource) このトランスレーターの DataSource を設定します。 |
void | setSqlErrorCodes(SQLErrorCodes sec) 変換に使用するカスタムエラーコードを設定します。 |
buildMessage, getFallbackTranslator, setFallbackTranslator, translate
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public SQLErrorCodeSQLExceptionTranslator()
public SQLErrorCodeSQLExceptionTranslator(DataSourceSE dataSource)
dataSource
- メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSourceSQLErrorCodesFactory
public SQLErrorCodeSQLExceptionTranslator(StringSE dbName)
dbName
- エラーコードエントリを識別するデータベース製品名 SQLErrorCodesFactory
, DatabaseMetaData.getDatabaseProductName()
SEpublic SQLErrorCodeSQLExceptionTranslator(SQLErrorCodes sec)
sec
- エラーコード public void setDataSource(DataSourceSE dataSource)
このプロパティを設定すると、DataSource から接続が取得され、メタデータが取得されます。
dataSource
- メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSourceSQLErrorCodesFactory.getErrorCodes(javax.sql.DataSource)
, DatabaseMetaData.getDatabaseProductName()
SEpublic void setDatabaseProductName(StringSE dbName)
このプロパティを設定すると、DataSource から接続を取得してメタデータを取得することを回避できます。
dbName
- エラーコードエントリを識別するデータベース製品名 SQLErrorCodesFactory.getErrorCodes(String)
, DatabaseMetaData.getDatabaseProductName()
SEpublic void setSqlErrorCodes(@Nullable SQLErrorCodes sec)
sec
- 使用するカスタムエラーコード @Nullable public SQLErrorCodes getSqlErrorCodes()
@Nullable protected DataAccessException doTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE ex)
AbstractFallbackSQLExceptionTranslator
渡された引数は事前にチェックされています。さらに、このメソッドは null
を返し、例外の一致が見つからなかったこと、およびフォールバック変換が開始されることを示すことができます。
AbstractFallbackSQLExceptionTranslator
の doTranslate
task
- 試行されているタスクを説明する読み取り可能なテキスト sql
- 問題を引き起こした SQL クエリまたは更新 (既知の場合)ex
- 問題のある SQLException
SQLException
をラップする DataAccessException。例外一致が見つからない場合は null
@Nullable protected DataAccessException customTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx)
SQLException
SE から DataAccessException
へのカスタムマッピングを試みることができます。task
- 試行されているタスクを説明する読み取り可能なテキスト sql
- 問題を引き起こした SQL クエリまたは更新 (null
の場合があります)sqlEx
- 問題のある SQLExceptionnull
、それ以外の場合はカスタム変換の結果である DataAccessException
。この例外には、ネストされた根本原因として sqlEx
パラメーターを含める必要があります。この実装は常に null
を返します。つまり、トランスレータは常にデフォルトのエラーコードにフォールバックします。@Nullable protected DataAccessException createCustomException(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx, ClassSE<?> exceptionClass)
CustomSQLErrorCodesTranslation
定義の特定の例外クラスに基づいて、カスタム DataAccessException
を作成します。task
- 試行されているタスクを説明する読み取り可能なテキスト sql
- 問題を引き起こした SQL クエリまたは更新 (null
の場合があります)sqlEx
- 問題のある SQLExceptionexceptionClass
- CustomSQLErrorCodesTranslation
定義で定義されている、使用する例外クラス null
、それ以外の場合は結果の DataAccessException
。この例外には、ネストされた根本原因として sqlEx
パラメーターを含める必要があります。CustomSQLErrorCodesTranslation.setExceptionClass(java.lang.Class<?>)