パッケージ org.opengion.fukurou.db

# クラス TransactionReal

java.lang.Object
org.opengion.fukurou.db.TransactionImpl
org.opengion.fukurou.db.TransactionReal

すべての実装されたインタフェース:
  `AutoCloseable`, `Transaction`

public class TransactionReal extends TransactionImpl
Transaction インターフェースを継承した、リアルタイムトランザクションクラスです。 これは、トランザクション処理のためのクラスというより、トランザクション処理を行わない コネクションを、共通的に使用する為のクラスになります。 つまり、Connection のラップクラスになります。 ただし、このクラスが生成されてから、クローズされるまでは、内部に保留した Connection は、 ずっと使い続けられますので、ConnectionFactory から取り出した Connection と同様に トランザクション性は維持されます。 このクラスでは、close()処理で、commit/rollback が実行されます。 6.3.6.1 (2015/08/28) selectを実行した後で明示的にcommit,rollbackを行わないのはOracle位 らしいので、検索終了時でも、commit か、rollback を行うようにします。 つまり、commit されない(=途中で処理が打ち切られた)場合は、 rollback するように仕様変更しますので、Transactionオブジェクトを 呼び出した処理の最後には、検索であろうとなかろうと、commit()を入れてください。 ただし、Transaction オブジェクトは、DBアクセス以外にも適用可能に 作成しているため、Connection がある場合のみ、実際の commit/rollback が 実行されます。

変更履歴:
  5.1.9.0 (2010/08/01) 新規作成, 5.3.8.0 (2011/08/01) クラスの内部構造変更
導入されたバージョン:
  JDK6.0,

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `TransactionReal(ApplicationInfo appInfo)`
  ApplicationInfo を指定して作成する、コンストラクター このクラスは、トランザクション処理をしない場合に、従来の Connection の 代わりに使用することを想定したクラスのオブジェクトを作成します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `close()`
  コネクションの、終了時処理を行います。
  `void`
  `commit()`
  コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。

  ### クラスから継承されたメソッド org.opengion.fukurou.db.TransactionImpl

  `endCommit, finish, getConnection, rollback`

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## コンストラクタの詳細

  - ### TransactionReal

    public TransactionReal(ApplicationInfo appInfo)
    ApplicationInfo を指定して作成する、コンストラクター このクラスは、トランザクション処理をしない場合に、従来の Connection の 代わりに使用することを想定したクラスのオブジェクトを作成します。
    パラメータ:
      `appInfo` - 内部統制用のアクセス情報
    変更履歴:
      5.3.7.0 (2011/07/01) dbidを引数から削除, 5.3.8.0 (2011/08/01) 親クラスを呼ぶように変更

- ## メソッドの詳細

  - ### commit

    public void commit()
    コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。 １回でもコミットが行われており、ロールバックが行われていなければ、 コミットされます。 検索処理時でも、最後に commit() を実行してください。実行されていない場合は、 自動的に、rollback() が、実行されます。 ※ TransactionReal の commit() は、endCommit() が実行されます。 これは、トランザクションの最後に実行される処理で、それ以前に rollback されていなければ、commit(）されます。
    定義:
      `commit` インタフェース内 `Transaction`
    オーバーライド:
      `commit` クラス内 `TransactionImpl`
    変更履歴:
      6.4.3.3 (2016/03/04) 一般的なタグで、SKIP_PAGE された場合、rollback するようにします。

  - ### close

    public void close()
    コネクションの、終了時処理を行います。 毎回クローズ処理を行う事になります。 ここで、commit されていれば、実際の commit が行われます。 commit が行われていない場合は、rollback が実行されます。 Connectionは、ConnectionFactory のプールに戻されます。 ただし、明示的に rollback が実行された場合は、rollback 処理後に コネクションは、破棄します。
    定義:
      `close` インタフェース内 `AutoCloseable`
    定義:
      `close` インタフェース内 `Transaction`
    オーバーライド:
      `close` クラス内 `TransactionImpl`
    関連項目:
      - `AutoCloseable.close()`
    変更履歴:
      6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。