概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## org.zuena.guiceex.jpa.transaction
クラス TransactionPropagator

    java.lang.Object
      org.zuena.guiceex.jpa.transaction.TransactionPropagator

すべての実装されたインタフェース:
  Cloneable

    public abstract class TransactionPropagator

extends Object
implements Cloneable

`TransactionAttributeType`に応じたトランザクション処理を行います。 このクラスのインスタンスは、`TransactionAttributeType`に応じた実装を 伴って作成され、`TransactionInterceptor`でプロトタイプとして利用され、 都度作成された複製が実行されます。
guiceex-0.9.1では、Resource-Localトランザクションのみサポートします。
以下に`TransactionAttributeType`毎の振る舞いを説明します。

> TransactionAttributeType | EntityManagerが作成済みで トランザクションが開始済み | EntityManagerが未作成か、 トランザクションが未開始
> --- | --- | ---
> NOT_SUPPORTED | EntityManagerを新規作成する。 トランザクションは開始しない。 | EntityManager未作成の場合は作成する。 トランザクションは開始しない。
> SUPPORTS | 既存のトランザクションを使用。 | EntityManager未作成の場合は作成する。 トランザクションは開始しない。
> REQUIRED | 既存のトランザクションを使用。 | EntityManager未作成の場合は作成する。 トランザクションを開始する。
> REQUIRES_NEW | EntityManagerを新規作成する。 トランザクションを開始する。 | EntityManagerを新規作成する。 トランザクションを開始する。
> MANDATORY | 既存のトランザクションを使用。 | NoTransactionExceptionをスローする。
> NEVER | `TransactionActiveException`をスローする。 | EntityManagerが無い場合は新規作成する。 トランザクションは開始しない。

導入されたバージョン:
  0.9.1
作成者:
  matsu@zuena.org.

入れ子のクラスの概要
`static interface` | `TransactionPropagator.Process` トランザクション内で実行される処理を記述するクラスに実装するインターフェイスです。

フィールドの概要
`protected static org.apache.commons.logging.Log` | `log`
`protected PersistenceContext` | `pc`
`protected static Map<TransactionAttributeType,TransactionPropagator>` | `propagators`
`protected Class<? extends Throwable>[]` | `rollbackFor`
`protected TransactionAttributeType` | `type`

コンストラクタの概要
`TransactionPropagator(TransactionAttributeType type)`

メソッドの概要
`TransactionPropagator` | `clone()` プロトタイプインスタンスより複製を作成するメソッドです。
`protected abstract void` | `closeProcess()` `EntityManager.close()`の呼び出しなどを実行します。
`protected abstract void` | `commitProcess()` `TransactionPropagator.Process.execute(EntityManager)`を呼び出し後に、トランザクションをコミットする際に呼ばれます
`protected void` | `exceptionProcess(Throwable t)` 例外発生時のコミット/ロールバック処理を行います。
`static TransactionPropagator` | `getTransactionPropagator(TransactionAttributeType type)` `TransactionAttributeType`に応じた`TransactionPropagator`インスタンスを取得します。
`protected abstract void` | `prepare()` `TransactionPropagator.Process.execute(EntityManager)`を呼び出す前の、トランザクション開始などの事前処理を行います。
`Object` | `propagate(TransactionPropagator.Process process)` トランザクション処理を行い、`Process#execute()`を実行します。
`protected abstract void` | `rollbackProcess()` `TransactionPropagator.Process.execute(EntityManager)`を呼び出し後に、トランザクションをロールバックする際に呼ばれます
`void` | `setPersistenceContext(PersistenceContext pc)`
`void` | `setRollbackFor(Class<? extends Throwable>[] rollbackFor)` トランザクションをロールバックする例外タイプをセットします。

クラス java.lang.Object から継承されたメソッド
`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

フィールドの詳細

### log

    protected static final org.apache.commons.logging.Log log

### propagators

    protected static final Map<TransactionAttributeType,TransactionPropagator> propagators

### rollbackFor

    protected Class<? extends Throwable>[] rollbackFor

### type

    protected TransactionAttributeType type

### pc

    protected PersistenceContext pc

コンストラクタの詳細

### TransactionPropagator

    public TransactionPropagator(TransactionAttributeType type)

メソッドの詳細

### setPersistenceContext

    public void setPersistenceContext(PersistenceContext pc)

### getTransactionPropagator

    public static TransactionPropagator getTransactionPropagator(TransactionAttributeType type)

  `TransactionAttributeType`に応じた`TransactionPropagator`インスタンスを取得します。

### propagate

    public Object propagate(TransactionPropagator.Process process)
                     throws Throwable

  トランザクション処理を行い、`Process#execute()`を実行します。

  例外:
    `Throwable`

### setRollbackFor

    public void setRollbackFor(Class<? extends Throwable>[] rollbackFor)

  トランザクションをロールバックする例外タイプをセットします。
  例外タイプは`@``Transactional.rollbackFor()`属性で指定した例外タイプです。

### clone

    public TransactionPropagator clone()

  プロトタイプインスタンスより複製を作成するメソッドです。

  オーバーライド:
    クラス `Object` 内の `clone`

### exceptionProcess

    protected void exceptionProcess(Throwable t)
                             throws Throwable

  例外発生時のコミット/ロールバック処理を行います。

  例外:
    `Throwable`

### prepare

    protected abstract void prepare()

  `TransactionPropagator.Process.execute(EntityManager)`を呼び出す前の、トランザクション開始などの事前処理を行います。

### commitProcess

    protected abstract void commitProcess()

  `TransactionPropagator.Process.execute(EntityManager)`を呼び出し後に、トランザクションをコミットする際に呼ばれます

### rollbackProcess

    protected abstract void rollbackProcess()

  `TransactionPropagator.Process.execute(EntityManager)`を呼び出し後に、トランザクションをロールバックする際に呼ばれます

### closeProcess

    protected abstract void closeProcess()

  `EntityManager.close()`の呼び出しなどを実行します。

概要 | パッケージ | クラス | 使用 | 階層ツリー | 非推奨 API | 索引 | ヘルプ
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Copyright © 2007 zuena.org AllRights Reserved.