「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 />