0

次の例があるとします。

@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class MyServiceImpl implements MyService {

    ...

    @Transactional(propagation=Propagation.REQUIRED, readOnly=false)
    public TransactionResponse addMyEntity(MyEntity e) throws SQLException{
        ...
    }

    ...
}

そして、私のapplicationContextで:

<tx:annotation-driven transaction-manager="txManager" />

さて、SQLException がスローされた場合、トランザクションのロールバック後にインターセプターを追加したいと思います。これどうやってするの?

前もって感謝します

編集

私がやろうとしていることを明確にしようとします:

DB にいくつかの情報を保持し、応答を返す WS があります (問題が発生した場合は isOk ブール値と errorMessage )。

例外が発生するたびに、次のことを行う必要があります。

  • トランザクションをロールバックする
  • エラー メッセージを含む応答を作成し、それをクライアントに返します。

これは、Spring のトランザクション プロキシに関する try/catch のようなものです。

4

1 に答える 1

1

、および使用するインターセプターのorder属性を使用します。tx:annotation-drivenしたがって、どちらが先に実行されるかを指定します。AOP AspectJ アドバイスの順序セクションを参照してください

于 2010-11-28T08:38:14.533 に答える