无法让@Rollback为我的Spring JPA集成测试工作

这是我的一个小测试课程。 问题是它在每次测试运行后都没有回滚事务。 我做错了什么? 🙂

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) public class TermTest { @Autowired private CatalogService service; @Rollback(true) @Test public void testSimplePersist() { Term term = new Term(); term.setDescription("Description"); term.setName("BirdSubject8"); term.setIsEnabled("F"); term.setIsSystem("F"); term.setTermType("TERM"); service.createTerm(term); } } 

和我的spring配置

            

除了@TransactionConfiguration之外,您还需要@TransactionConfiguration

 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "/META-INF/catalog-spring.xml" }) @TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true) @Transactional public class TermTest { ... } 

在4.0之后的版本中,因为不推荐使用TransactionConfiguration

 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "/config/spring-config.xml") @Transactional public class UserTest { @Rollback public void test(){ } }