java - 在 JUnit 中获取当前的 Spring 事务并提交它

标签 java spring jpa junit transactions

是否有可能在 JUnit 中获取当前的 Spring 事务?

我想在 DAO 中测试 JPA。而 DAO 没有交易。在测试中,spring 为每个方法创建事务。我希望在测试过程中的某个地方提交事务。需要它来测试数据库状态。我找到的唯一解决方案是为每个方法创建 @Rule。

最佳答案

您可以使用 TestTransaction 来管理 Spring 测试事务:

TestTransaction.flagForCommit();
TestTransaction.end();

这将为 commit 标记当前事务并结束它。之后,您可以使用 TestTransaction.start() 开始一个新事务。

关于java - 在 JUnit 中获取当前的 Spring 事务并提交它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35113220/

相关文章:

java - 增强的 for 循环编译适用于 JDK 8 但不是 7

java 将 GZIPOutputStream 和 ByteArrayOutputStream 包装在一起 - 我做错了什么?

java - 在 spring 中使用 hibernate 的 createSQLQuery 不起作用

java - 使用泛型按类型进行依赖注入(inject) - 它是如何工作的?

java - 组合键之间的多对一关系

java - TimesTen 方言 hibernate 3

java - 如何将 BufferedImage 对象保存到文件?

java - Vaadin 7 session ID

java - toplink 未创建一张表

mysql - Spring 数据 jpa utf-8 编码不起作用