可能的解决方法是引入一个注释为的辅助
bean,@Transactional("transactionManagerTarget")而将测试保留为@Transactional("transactionManager"),同时使用进行配置defaultRollback = true。然后,您的测试将不得不调用助手bean,而后者又将调用被测试的服务bean。这将导致服务周围的事务回滚,然后DBUnit周围的事务回滚。
不过,这有点混乱。
其他可能的方法:
- 使用内存数据库(例如H2)而不是生产数据库-您可以将其配置为在需要时删除其所有数据。
- 允许DBUnit提交,并在您的拆卸方法中进行补偿事务以清除数据。



