java - 我如何使用 HQL/Hibernate 验证我的所有表都是空的?

标签 java sql hibernate hql

我有一个很大的功能测试套件。每个测试都是独立的。 但是,有时会出现问题,其中一个测试会泄漏(在数据可以被清理之前发生异常等),并且一些后续测试可能会失败。

所以我想在每个测试中做的第一件事是检查数据库是否真的是空的。知道破损是由于泄漏而不是回归会有所帮助。

我想知道我是否可以通过单个请求完成此操作,因为我想避免做和维护类似的事情:

sessionFactory.getCurrentSession().createQuery("Select a From A a").list().isEmpty()
...
sessionFactory.getCurrentSession().createQuery("Select z From Z z").list().isEmpty()

我为 mysql 找到了这个:List of non-empty tables in MySQL database但它是特定的。

谢谢:)

最佳答案

我所做的是将我的“hibernate.hbm2ddl.auto”设置为在 hibernate.cfg.xml 中创建,并且在每次测试中我使用重置我的 sessionfactory

sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();

这样每次测试都会重新创建数据库

关于java - 我如何使用 HQL/Hibernate 验证我的所有表都是空的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9275339/

相关文章:

sql - 游标 SQL_CURLH200C1 未处于准备状态

sql - Postgres : How to count records with conditions CONSECUTIVELY in a certain period of time?

java - Hibernate 查询 - ClassCastError

java - 如何在多节点生产服务器上迁移数据库?

Java计算排序数组中每个项目的出现次数

java - Java 包装类的不可变性文档

python - 检查变量的 Python SQL 查询结果

java - GWT 服务器端与数据库的交互

Java 读取 Maven 项目中的 XML 文件 - Openshift JBoss

java - Spark 应用程序在 Heroku 构建后立即崩溃