目前,我正在使用以下配置我的测试类 -
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@Transactional
由于@TransactionConfiguration
已被弃用,可以替代它 -
我试过了 -
@Transactional(transactionManager = "transactionManager")
@Commit
但我收到以下错误 -
java.lang.IllegalStateException:测试类[ca.aeso.dt.dao.impl.AssetAttributeDaoImplTest] 使用@Rollback和@TransactionConfiguration进行注释,但只允许使用一个。 at org.springframework.test.context.transaction.TransactionalTestExecutionListener.isDefaultRollback(TransactionalTestExecutionListener.java:383) 在org.springframework.test.context.transaction.TransactionalTestExecutionListener.isRollback(TransactionalTestExecutionListener.java:412) 在org.springframework.test.context.transaction.TransactionalTestExecutionListener.beforeTestMethod(TransactionalTestExecutionListener.java:201) 在org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:269)
答案 0 :(得分:6)
是的,@Commit
相当于将默认回滚模式设置为false
。
此外,事务管理器的默认名称是“transactionManager”。所以你可以删除限定符的声明并单独使用@Transactional
。
如果异常抱怨@TransactionConfiguration
的使用,那么你必须在测试类或超类上声明它。解决方案是简单地删除完整的@TransactionConfiguration
声明。
此致
Sam (Spring TestContext Framework的作者)