Class UniversalDao.Transaction

Enclosing class:
UniversalDao

public abstract static class UniversalDao.Transaction extends SimpleDbTransactionExecutor<Void>
トランザクション境界を作るためのクラス。

通常の業務トランザクションと異なるトランザクションでデータベースアクセスを行いたい場合、 本クラスを継承することで別トランザクション内でUniversalDaoを使用することができる。

 
 // projectエンティティを登録する場合
 final Project project = SessionUtil.get(context, "project");

 new UniversalDao.Transaction("トランザクションマネージャ名"){

     // execute()を実装する
     protected void execute() {
        // UniversalDaoを利用したDB操作処理を記述する
        UniversalDao.insert(project);
     }
 };
 
  • Constructor Details

    • Transaction

      public Transaction(SimpleDbTransactionManager transactionManager)
      トランザクションマネージャを指定して、別トランザクションを生成する。
      Parameters:
      transactionManager - トランザクションマネージャ
    • Transaction

      public Transaction(String transactionManagerName)
      トランザクションマネージャ名を指定して、別トランザクションを生成する。
      Parameters:
      transactionManagerName - トランザクションマネージャ名
  • Method Details

    • execute

      public Void execute(AppDbConnection connection)
      Description copied from class: SimpleDbTransactionExecutor
      SQL文を実行する。
      Specified by:
      execute in class SimpleDbTransactionExecutor<Void>
      Parameters:
      connection - コネクション
      Returns:
      トランザクション実行結果
    • execute

      protected abstract void execute()
      データベースへのアクセス処理を行う。

      コネクションはDaoContextFactoryに設定されたものが使われるので、 このexecuteを実装し、中でUniversalDaoのメソッドを使えば 別トランザクションになる。

      また、自動的にコミット/ロールバックが行われる。