java - Spring transactionManager 正在回滚,而 testexception=[null]!

标签 java spring-transactions

为什么在没有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

哪里做错了?如有必要,我可以提供更多信息。

最佳答案

INFO 级别应该提示这不是错误消息。无论服务级别方法的主要设置如何,默认情况下您的测试都会回滚。为了避免回滚(如果你真的想要),你需要在测试类本身上添加注释,如 Annotations section of the Testing chapter 中所述。在 Spring 文档中。有问题的注释是 @Rollback

关于java - Spring transactionManager 正在回滚,而 testexception=[null]!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19333955/

相关文章:

java - Java中的十六进制整数到十进制整数

java - 从 java servlet 将 'success' 响应发送回 Acrobat Reader

java - 在java中定义事务边界的位置(@Service或@DAO级别),任何建议

java - 如何使用 spring aop 定义在循环内调用的回滚事务?

spring-boot - 如何查看我的 Spring Boot 应用程序中是否启用了事务管理?

java - 构造函数重载

java - 使用java在浏览器中下载Excel文件

Java(热点)详细 :gc output use in application and process on runtime

java - 传入 JMS 消息的事务同步未激活

spring - 使用自定义 AnnotationTransactionAttributeSource 和 tx :annotation-driven