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