これが可能かどうか疑問に思っていました。これは私の最初の質問なので、プロトコルに厳密に従っていない場合はご容赦ください. トランザクション テンプレートを使用してトランザクションをロールバックできます。しかし、今私がやりたいことは、@before というラベルの付いたメソッドでステータスを保存し、それを @after メソッドでロールバックすることです。
たとえば、これは私が以前に持っていたものです:
_transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus)
{
Object transactionStatusSavepoint = transactionStatus.createSavepoint();
//do some work
transactionStatus.rollbackToSavepoint(transactionStatusSavepoint);
}
});
これはすべてうまく機能します。今私はこれをしたいと思います:
@Before
public void beforeTest() {
_template.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus transactionStatus) {
_transactionStatusSavepoint = _transactionStatus.createSavepoint();
}
});
@Test
public void foo(){//do some stuff}
@After
public void afterTest() {
_transactionStatus.rollbackToSavepoint(_transactionStatusSavepoint);
}
わからないことや詳しく知りたいことがあれば教えてください。前もって感謝します!