gpt4 book ai didi

java - 从事务测试中查看数据 - Hibernate + Spring + MySQL

转载 作者:可可西里 更新时间:2023-11-01 08:55:26 25 4
gpt4 key购买 nike

我在 Hibernate/Spring 应用程序中进行了一系列测试。昨天,我将它们从使用 Spring 提供的 JUnit 3.8 基础测试类转换为 JUnit 4.4。

一切都很好,因为现在,我的测试包含在事务中,创建/修改的数据会自动回滚(而不是我编写代码来删除新创建的实体)。

唯一的问题是我无法在测试执行期间窥视数据库。如果测试失败,我经常在接近尾声的地方添加断点并通过 SQL Yog 窥视 MySQL 数据库以查看发生了什么上。但是现在,我只看到空表。 (我的意思是在非常接近地模拟生产并实际接触数据库的集成测试中。)

我尝试将全局隔离级别设置为未提交读取,但这并没有改变我看不到数据的事实。如何配置 Spring/Hibernate 以允许我查看来自另一个进程的数据?

最佳答案

我遇到了同样的问题,发现在使用 YOG 时设置session 隔离级别有时会有所帮助。

SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

这只揭示了另一个令人不安的问题 - 在运行测试时,Hibernate 实际上并没有运行某些操作,除非我在每次 Hibernate 操作后使用 HibernateTemplate.flush();。由于这非常烦人,我最终设置了 Hibernate,使其始终刷新 查询,如下所示:

HibernateTemplate hibernateTemplate;

...

hibernateTemplate.setFlushMode(HibernateTemplate.FLUSH_ALWAYS);

关于java - 从事务测试中查看数据 - Hibernate + Spring + MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5675928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com