2013-10-12 2 views
1

Почему транзакция откатывается, пока нет Exception? Объект не сохраняется. я определил параметры транзакции, такие как:Spring transactionManager - это откат, а testexception = [null]!

@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 [[email protected] 
testClass = DAOTest, testInstance = [email protected], testMethod = 
[email protected], testException = [null], mergedContextConfiguration = 
[[email protected] 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

Уровень INFO должен дать нам указание, что это не сообщение об ошибке. Ваш тест откатывается по умолчанию, независимо от основной настройки метода уровня обслуживания. Чтобы избежать отката (если вы действительно этого захотите), вам нужна аннотация для самого тестового класса, как описано в документации Annotations section of the Testing chapter весной. Указанная аннотация - @Rollback.

Смежные вопросы