我在测试中使用Spring事务(@Transactional)。基本上,我有一个DAO层,其中每个方法在该方法上都有一个@Transactional。在测试类中,如果未指定@Transactional,则可以在数据库中看到数据(因此数据已保存),否则在类的@Transactional处添加数据不会持久化数据。但是,一旦测试结束,数据就会保留下来。
您知道为什么会这样做吗?
最佳答案
当您添加@Transactional
批注时,Spring将启动围绕您的测试方法和@Before
,@After
回调的新事务,并且当测试完成时,该事务将自动回滚。
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-tx