6

がないのにトランザクションがロールバックされるのはなぜExceptionですか? オブジェクトは保管されていません。次のようなトランザクション パラメータを定義しました。

 @Transactional(value = "transactionManager", timeout = 30, rollbackFor =
 java.lang.Exception.class)`.  

これは、トランザクションに関するログの内容です。

org.springframework.test.context.transaction.TransactionalTestExecutionListener
endTransaction
INFO: Rolled back transaction after test execution for test context [TestContext@51e2a069
testClass = DAOTest, testInstance = sample.library.dao.DAOTest@7591777e, testMethod =
testSaveDao@DAOTest, testException = [null], mergedContextConfiguration =
[MergedContextConfiguration@213c2d7f testClass = DAOTest, locations = 
'{classpath:/applicationcontext.xml}', classes = '{}', contextInitializerClasses = '[]',
activeProfiles = '{}', contextLoader = 
'org.springframework.test.context.support.DelegatingSmartContextLoader', parent =
[null]]]
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.634 sec

DAOTestクラスのログ全体は次のとおりです。

-------------------------------------------------------------------------------
Test set: sample.library.dao.DAOTest
-------------------------------------------------------------------------------
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.634 sec

何が間違っているのですか?必要に応じて、さらに情報を提供できます。

4

1 に答える 1

11

レベルは、INFOこれがエラー メッセージではないというヒントを与える必要があります。サービス レベル メソッドのプライマリ設定に関係なく、テストはデフォルトでロールバックされます。ロールバックを回避するには (本当に必要な場合) 、Spring ドキュメントのテストの章の注釈セクションに記載されているように、テスト クラス自体に注釈が必要です。問題の注釈は@Rollback.

于 2013-10-12T12:21:51.420 に答える