我有一个很大的功能测试套件。每个测试都是独立的。 但是,有时会出现问题,其中一个测试会泄漏(在数据可以被清理之前发生异常等),并且一些后续测试可能会失败。
所以我想在每个测试中做的第一件事是检查数据库是否真的是空的。知道破损是由于泄漏而不是回归会有所帮助。
我想知道我是否可以通过单个请求完成此操作,因为我想避免做和维护类似的事情:
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/