java - 与数据源手动交互后回滚测试中的更改?

标签 java spring transactions rollback dbsetup

我正在使用 dbsetup 进行数据库测试。问题是我无法在每次测试后使用始终有效的方法来回滚数据,该方法使用 @Transactional 注释来注释测试用例(或方法)。我想发生这种情况是因为 dbsetup 使用 DataSource 本身,所以 Spring 无法跟踪对数据库所做的操作。如何做到这一点?

最佳答案

DbSetup 在任何方面都与 Spring 无关。它从数据源获取 JDBC 连接并在完成后提交它。

使用 DbSetup 的推荐方法是在每次测试之前清除并填充表。使用 DbSetupTracker 可以避免无用的重新填充,以防测试使用与先前测试相同的数据,并且先前的测试未更改数据。 user guide 中对此进行了描述。 .

关于java - 与数据源手动交互后回滚测试中的更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26820042/

相关文章:

java - 线程 "main"java.lang.NullPointerException 中出现异常以及如何修复它?

Java - 了解 Class<?> 类型以及调用 'Type.class' 时发生的情况

java - 如何从一台计算机访问同一网络上的另一台计算机的本地主机服务器

spring - @Transactional(readOnly = true) 导致 LazyInitializationException

java - 它是装饰器模式吗?

java - 忽略 spring mvc 中的安全注释

java - 如何仅扫描加载的Spring中的特定文件夹?

java - SQL Server CLOB 数据转字符串 Java + Angular

php - 为什么使用innoDB和事务?

concurrency - Clojure 中的 `ensure` 函数在 `let` 中行为不端?