目前,我正在使用以下配置我的测试类 -
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional
Run Code Online (Sandbox Code Playgroud)
由于@TransactionConfiguration已被弃用,有什么可以更换为但─
我试过了 -
@Transactional(transactionManager = "transactionManager")
@Commit
Run Code Online (Sandbox Code Playgroud)
但我得到以下错误 -
java.lang.IllegalStateException:测试类[ca.aeso.dt.dao.impl.AssetAttributeDaoImplTest] 使用@Rollback和@TransactionConfiguration进行注释,但只允许使用一个. org.springframework.test.context.transaction.TransactionalTestExecutionListener.isDefaultRollback(TransactionalTestExecutionListener.java:383)位于org.springframework.test.context的org.springframework.test.context.transaction.TransactionalTestExecutionListener.isRollback(TransactionalTestExecutionListener.java:412) .transaction.TransactionalTestExecutionListener.beforeTestMethod(TransactionalTestExecutionListener.java:201)at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:269)
是的,@Commit相当于将默认回滚模式设置为false.
此外,事务管理器的默认名称是"transactionManager".所以你可以删除限定符的声明并单独使用@Transactional.
如果异常是抱怨使用@TransactionConfiguration,那么你必须在测试类或超类上声明它.解决方案是简单地删除完整的@TransactionConfiguration声明.
问候,
Sam (Spring TestContext Framework的作者)
| 归档时间: |
|
| 查看次数: |
6886 次 |
| 最近记录: |