Spring测试中的事务处理无效
来源:爱站网时间:2021-09-16编辑:网友分享
我正在测试中使用Spring事务(@Transactional)。基本上,我有一个DAO层,其中每个方法在该方法上都有一个@Transactional。在测试类中,如果我不指定@ ...
问题描述
我正在测试中使用Spring事务(@Transactional)。基本上,我有一个DAO层,其中每个方法在该方法上都有一个@Transactional。在测试类中,如果未指定@Transactional,则可以在数据库中看到数据(因此数据已保存),否则在类的@Transactional处添加数据不会持久化数据。但是,一旦测试结束,数据就会保留。
您知道为什么要这么做吗?
思路:
[在测试类上方添加@Transactional
批注时,Spring将围绕您的测试方法启动一个新事务,并在@Before
,@After
回调中进行测试,当测试完成时,该事务将自动回滚。
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-tx