クラス PersistenceExceptionTranslationInterceptor

java.lang.ObjectSE
org.springframework.dao.support.PersistenceExceptionTranslationInterceptor
実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanFactoryAwareInitializingBean

public class PersistenceExceptionTranslationInterceptor extends ObjectSE implements MethodInterceptor, BeanFactoryAware, InitializingBean
AOP Alliance MethodInterceptor。所定の PersistenceExceptionTranslator に基づいて永続性例外変換を提供します。

指定された PersistenceExceptionTranslator にデリゲートして、スローされた RuntimeException を Spring の DataAccessException 階層に変換します(適切な場合)。問題の RuntimeException がターゲットメソッドで宣言されている場合、常にそのままの状態で伝達されます(変換は適用されません)。

導入:
2.0
作成者:
Rod Johnson, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • PersistenceExceptionTranslationInterceptor

      public PersistenceExceptionTranslationInterceptor()
      新しい PersistenceExceptionTranslationInterceptor を作成します。後で PersistenceExceptionTranslator で構成する必要があります。
      関連事項:
    • PersistenceExceptionTranslationInterceptor

      public PersistenceExceptionTranslationInterceptor(PersistenceExceptionTranslator pet)
      指定された PersistenceExceptionTranslator の新しい PersistenceExceptionTranslationInterceptor を作成します。
      パラメーター:
      pet - 使用する PersistenceExceptionTranslator
    • PersistenceExceptionTranslationInterceptor

      public PersistenceExceptionTranslationInterceptor(ListableBeanFactory beanFactory)
      指定された BeanFactory で PersistenceExceptionTranslators を自動検出して、新しい PersistenceExceptionTranslationInterceptor を作成します。
      パラメーター:
      beanFactory - ListableBeanFactory からすべての PersistenceExceptionTranslators を取得する
  • メソッドの詳細

    • setPersistenceExceptionTranslator

      public void setPersistenceExceptionTranslator(PersistenceExceptionTranslator pet)
      使用する PersistenceExceptionTranslator を指定します。

      デフォルトでは、チェーンで使用して、BeanFactory を含むすべての PersistenceExceptionTranslators を自動検出します。

      関連事項:
    • setAlwaysTranslate

      public void setAlwaysTranslate(boolean alwaysTranslate)
      例外を常に変換するか("true" )、または宣言時に生の例外をスローするか、つまり、元のメソッドシグネチャーの例外宣言で生の例外をスローできるか("false" )を指定します。

      デフォルトは "false" です。元のメソッドのシグネチャーに関係なく、該当する例外を常に変換するには、このフラグを "true" に切り替えます。

      元のメソッドは特定の例外を宣言する必要がないことに注意してください。throws Exception を含め、どの基本クラスでも同じことができます。元のメソッドが互換性のある例外を明示的に宣言している限り、生の例外が再スローされます。いかなる場合でも生の例外をスローしないようにするには、このフラグを "true" に切り替えます。

    • setBeanFactory

      public void setBeanFactory(BeanFactory beanFactory) throws BeansException
      インターフェースからコピーされた説明: BeanFactoryAware
      所有ファクトリを Bean インスタンスに提供するコールバック。

      通常の Bean プロパティの設定後、ただし InitializingBean.afterPropertiesSet() またはカスタム init-method などの初期化コールバックの前に呼び出されます。

      次で指定:
      インターフェース BeanFactoryAwaresetBeanFactory 
      パラメーター:
      beanFactory - 所有 BeanFactory(非 null)。Bean は、ファクトリのメソッドをすぐに呼び出すことができます。
      例外:
      BeansException - 初期化エラーの場合
      関連事項:
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation mi) throws ThrowableSE
      インターフェースからコピーされた説明: MethodInterceptor
      このメソッドを実装して、呼び出しの前後に追加の処理を実行します。正しい実装としては、必ず Joinpoint.proceed() を呼び出すようにします。
      次で指定:
      インターフェース MethodInterceptorinvoke 
      パラメーター:
      mi - メソッド呼び出しジョインポイント
      戻り値:
      Joinpoint.proceed() の呼び出しの結果。インターセプターによってインターセプトされる可能性があります
      例外:
      ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合
    • detectPersistenceExceptionTranslators

      protected PersistenceExceptionTranslator detectPersistenceExceptionTranslators(ListableBeanFactory bf)
      指定された BeanFactory のすべての PersistenceExceptionTranslators を検出します。
      パラメーター:
      bf - から PersistenceExceptionTranslators を取得する ListableBeanFactory
      戻り値:
      指定された Bean ファクトリで見つかったすべての PersistenceExceptionTranslators を組み合わせたチェーン PersistenceExceptionTranslator
      関連事項: