「Spring」トランザクション(PlatformTransactionManager)処理の使い方

構文
1.インターフェース PlatformTransactionManager
getTransaction(TransactionDefinition definition)
指定された伝播動作に従って、現在アクティブなトランザクションを返すか、新しいトランザクションを作成します。

rollback(TransactionStatus status)
指定されたトランザクションのロールバックを実行します。

2.インターフェースTransactionDefinition
setPropagationBehavior(int propagationBehavior)
伝播動作を設定します。

public final void setIsolationLevel(int isolationLevel)
分離レベルを設定します。

使用例

public class StudentFrom extends BaseForm {
  
  //トランザクションのインスタンス変数につける
 @Autowired
 private PlatformTransactionManager ptManager;

public String testFunc() {
  //TransactionDefinitionの変数dtdの宣言
  DefaultTransactionDefinition dtd = null;
  
  //TransactionStatusの変数statusの宣言
  TransactionStatus status = null;
  
   try {
     dtd = new DefaultTransactionDefinition();
       // 伝播動作を設定
       dtd.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
       // 分離レベルを設定
       dtd.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
       // 読み取り専用トランザクションとして最適化するかどうかを設定
       dtd.setReadOnly(false);
       
       // 新しいトランザクションを作成
       status = ptManager.getTransaction(dtd);
       
       //処理コード
       
       //指定されたトランザクションをコミット
       ptManager.commit(status);
   } catch (IllegalArgumentException e) {
    
      // 指定されたトランザクションのロールバックを実行
     ptManager.rollback(status);
   }
    return xxx;
 } 

}

general-context.xmlの設定

<!-- @Autowiredアノテーションを有効にする設定 -->
<context:annotation-config />

 

SpringMVC

Posted by arkgame