替换@TransactionConfiguration

时间:2017-04-20 12:37:16

标签: spring-test

目前,我正在使用以下配置我的测试类 -

@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)

1 个答案:

答案 0 :(得分:6)

是的,@Commit相当于将默认回滚模式设置为false

此外,事务管理器的默认名称是“transactionManager”。所以你可以删除限定符的声明并单独使用@Transactional

如果异常抱怨@TransactionConfiguration的使用,那么你必须在测试类或超类上声明它。解决方案是简单地删除完整的@TransactionConfiguration声明。

此致

Sam (Spring TestContext Framework的作者