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

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

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

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

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

使用例

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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;
}
}
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; } }
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の設定

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<!-- @Autowiredアノテーションを有効にする設定 -->
<context:annotation-config />
<!-- @Autowiredアノテーションを有効にする設定 --> <context:annotation-config />
<!-- @Autowiredアノテーションを有効にする設定 -->
<context:annotation-config />

 

SpringMVC

Posted by arkgame