クラス SQLErrorCodeSQLExceptionTranslator

java.lang.ObjectSE
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator
実装されたすべてのインターフェース:
SQLExceptionTranslator

public class SQLErrorCodeSQLExceptionTranslator extends AbstractFallbackSQLExceptionTranslator
ベンダー固有のエラーコードを分析する SQLExceptionTranslator の実装。SQL 状態に基づいた実装よりも正確ですが、ベンダー固有のものです。

このクラスは、次の一致ルールを適用します。

  • サブクラスで実装されたカスタム変換を試してください。このクラスは具象であり、通常はそれ自体が使用されることに注意してください。この場合、この規則は適用されません。
  • エラーコードの一致を適用します。エラーコードは、デフォルトで SQLErrorCodesFactory から取得されます。このファクトリは、クラスパスから "sql-error-codes.xml" ファイルをロードし、データベースメタデータからデータベース名のエラーコードマッピングを定義します。
  • フォールバックトランスレータへのフォールバック。SQLStateSQLExceptionTranslator はデフォルトのフォールバックトランスレータであり、例外の SQL 状態のみを分析します。独自の SQLException サブクラス階層を導入する Java 6 は、デフォルトで SQLExceptionSubclassTranslator を使用します。これは、特定のサブクラスに遭遇しない場合、Spring 独自の SQL 状態変換にフォールバックします。

"sql-error-codes.xml" という名前の構成ファイルは、デフォルトでこのパッケージから読み取られます。Spring JDBC パッケージが同じ ClassLoader からロードされている限り、クラスパスのルート("/WEB-INF/classes" ディレクトリなど)にある同じ名前のファイルを介してオーバーライドできます。

このトランスレーターは通常、ユーザーが提供した `sql-error-codes.xml` ファイルがクラスパスのルートで見つかった場合に、この戦略を使用する信号としてデフォルトで使用されます。それ以外の場合は、SQLExceptionSubclassTranslator が 6.0 のデフォルトのトランスレータとして機能します。

作成者:
Rod Johnson, Thomas Risberg, Juergen Hoeller, Sam Brannen
関連事項:
  • コンストラクターの詳細

    • SQLErrorCodeSQLExceptionTranslator

      public SQLErrorCodeSQLExceptionTranslator()
      JavaBean として使用するコンストラクター。SqlErrorCodes または DataSource プロパティを設定する必要があります。
    • SQLErrorCodeSQLExceptionTranslator

      public SQLErrorCodeSQLExceptionTranslator(DataSourceSE dataSource)
      指定された DataSource の SQL エラーコードトランスレータを作成します。このコンストラクターを呼び出すと、DataSource から接続が取得され、メタデータが取得されます。
      パラメーター:
      dataSource - メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSource
      関連事項:
    • SQLErrorCodeSQLExceptionTranslator

      public SQLErrorCodeSQLExceptionTranslator(StringSE dbName)
      指定されたデータベース製品名の SQL エラーコードトランスレータを作成します。このコンストラクターを呼び出すと、DataSource から接続を取得してメタデータを取得することが回避されます。
      パラメーター:
      dbName - エラーコードエントリを識別するデータベース製品名
      関連事項:
    • SQLErrorCodeSQLExceptionTranslator

      public SQLErrorCodeSQLExceptionTranslator(SQLErrorCodes sec)
      これらのエラーコードを指定して、SQLErrorCode トランスレータを作成します。接続を使用してデータベースのメタデータ検索を実行する必要はありません。
      パラメーター:
      sec - エラーコード
  • メソッドの詳細

    • setDataSource

      public void setDataSource(DataSourceSE dataSource)
      このトランスレーターの DataSource を設定します。

      このプロパティを設定すると、DataSource から接続が取得され、メタデータが取得されます。

      パラメーター:
      dataSource - メタデータを検索し、使用可能なエラーコードを確立するために使用する DataSource
      関連事項:
    • setDatabaseProductName

      public void setDatabaseProductName(StringSE dbName)
      このトランスレーターのデータベース製品名を設定します。

      このプロパティを設定すると、DataSource から接続を取得してメタデータを取得することを回避できます。

      パラメーター:
      dbName - エラーコードエントリを識別するデータベース製品名
      関連事項:
    • setSqlErrorCodes

      public void setSqlErrorCodes(@Nullable SQLErrorCodes sec)
      変換に使用するカスタムエラーコードを設定します。
      パラメーター:
      sec - 使用するカスタムエラーコード
    • getSqlErrorCodes

      @Nullable public SQLErrorCodes getSqlErrorCodes()
      このトランスレータが使用するエラーコードを返します。通常、DataSource を介して決定されます。
      関連事項:
    • doTranslate

      @Nullable protected DataAccessException doTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE ex)
      クラスからコピーされた説明: AbstractFallbackSQLExceptionTranslator
      指定された例外を実際に変換するためのテンプレートメソッド。

      渡された引数は事前にチェックされています。さらに、このメソッドは null を返し、例外の一致が見つからなかったこと、およびフォールバック変換が開始されることを示すことができます。

      次で指定:
      クラス AbstractFallbackSQLExceptionTranslatordoTranslate 
      パラメーター:
      task - 試行されているタスクを説明する読み取り可能なテキスト
      sql - 問題を引き起こした SQL クエリまたは更新 (既知の場合)
      ex - 問題のある SQLException
      戻り値:
      SQLException をラップする DataAccessException。例外一致が見つからない場合は null 
    • customTranslate

      @DeprecatedSE(since="6.1") @Nullable protected DataAccessException customTranslate(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx)
      サブクラスはこのメソッドをオーバーライドして、SQLExceptionSE から DataAccessException へのカスタムマッピングを試みることができます。
      パラメーター:
      task - 試行されているタスクを説明する読み取り可能なテキスト
      sql - 問題を引き起こした SQL クエリまたは更新 (null の場合があります)
      sqlEx - 問題のある SQLException
      戻り値:
      カスタム変換が適用されない場合は null、それ以外の場合はカスタム変換の結果である DataAccessException。この例外には、ネストされた根本原因として sqlEx パラメーターを含める必要があります。この実装は常に null を返します。つまり、トランスレータは常にデフォルトのエラーコードにフォールバックします。
    • createCustomException

      @Nullable protected DataAccessException createCustomException(StringSE task, @Nullable StringSE sql, SQLExceptionSE sqlEx, ClassSE<?> exceptionClass)
      CustomSQLErrorCodesTranslation 定義の特定の例外クラスに基づいて、カスタム DataAccessException を作成します。
      パラメーター:
      task - 試行されているタスクを説明する読み取り可能なテキスト
      sql - 問題を引き起こした SQL クエリまたは更新 (null の場合があります)
      sqlEx - 問題のある SQLException
      exceptionClass - CustomSQLErrorCodesTranslation 定義で定義されている、使用する例外クラス
      戻り値:
      カスタム例外を作成できなかった場合は null、それ以外の場合は結果の DataAccessException。この例外には、ネストされた根本原因として sqlEx パラメーターを含める必要があります。
      関連事項: