Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用HQL/Hibernate验证我的所有表都是空的?_Java_Sql_Hibernate_Hql - Fatal编程技术网

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

Java 如何使用HQL/Hibernate验证我的所有表都是空的?,java,sql,hibernate,hql,Java,Sql,Hibernate,Hql,我有一个很大的函数测试套件。每个测试都是独立的。 但是,有时会出现问题,其中一个测试会泄漏(异常发生在数据清理之前等),随后的一些测试可能会失败 因此,在这些测试中,我想做的第一件事是检查数据库是否真的是空的。知道破损是由于泄漏而不是回归造成的会有帮助 我想知道我是否可以通过一个请求来实现这一点,因为我希望避免执行和维护以下操作: sessionFactory.getCurrentSession().createQuery("Select a From A a").list().isEmpty(

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

因此,在这些测试中,我想做的第一件事是检查数据库是否真的是空的。知道破损是由于泄漏而不是回归造成的会有帮助

我想知道我是否可以通过一个请求来实现这一点,因为我希望避免执行和维护以下操作:

sessionFactory.getCurrentSession().createQuery("Select a From A a").list().isEmpty()
...
sessionFactory.getCurrentSession().createQuery("Select z From Z z").list().isEmpty()
我为mysql找到了这个:但它是特定的

谢谢:)

怎么样

session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()
我要做的是将我的“hibernate.hbm2ddl.auto”设置为在hibernate.cfg.xml中创建,并在每次测试中使用

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

通过这种方式为每个测试重新创建数据库

这是个好主意,但我担心执行起来会花费大量时间。如果我找不到任何其他东西,我将测试您的解决方案。@Maxime:不要过早优化这不是我的代码,这些是我的测试。我在每次构建时都会运行它们(surfire with mvn test),所以我不能让它们花费太长时间。无论如何,我也使用这个解决方案,当我的DB只是用于测试时,它非常小,然后运行得非常快。。。“从表中选择1”将从我的库中的每个表中获取数据?用特定的表名替换它我在问题中说过我不想按表进行查询,这很痛苦而且不可维护。