我正在创建一个需要在数据库中保存数据的测试,所以我不能使用@Transactional
,因为我需要将数据有效保存在数据库中,问题是没有用@transaction
是提交后可能回滚事务吗?
答案 0 :(得分:0)
在每次测试之前,您的数据库应处于已知状态,并且任何一项测试都不应取决于另一项测试的结果。如果您需要提交其他原因,例如对测试进行故障排除,那么您可以使用以下方法注释测试类或单个测试方法:
@Rollback(false)
或@Commit
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#rollback
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#commit
@Rollback表示事务是否为事务测试 测试方法完成后,应该回滚方法。如果 是的,交易被回滚;否则,交易是 承诺(另见@Commit)。用于集成测试的回滚语义 在Spring TestContext Framework中默认为true,即使@Rollback 未明确声明。