如何使用 HQL/Hibernate 验证我的所有表都为空?
我有一个很大的功能测试套件。每个测试都是独立的。 但是,有时会出现问题,其中一个测试会泄漏(在数据清理之前发生异常等),并且某些后续测试可能会失败。
因此,我在每个测试中要做的第一件事是检查数据库是否真的为空。了解破损是由于泄漏而不是回归造成的会有所帮助。
我想知道我是否可以通过单个请求来完成此操作,因为我想避免执行和维护类似的操作:
sessionFactory.getCurrentSession().createQuery("Select a From A a").list().isEmpty()
...
sessionFactory.getCurrentSession().createQuery("Select z From Z z").list().isEmpty()
我为 mysql 找到了这个: MySQL 数据库中的非空表列表,但它是特定的。
谢谢 :)
I have a big functionnal test suite. Each test are independant.
But, from time to time, there is a problem and one of these tests leaks (exception happens before the data could be cleaned etc) and some of the subsequent tests could fail.
So the first thing i want to do in each of these test is check if the database is really empty. It would help to know that the breakage is due to a leak and not a regression.
I would like to know if i can do this with a single request, because I'd like to avoid doing and maintaining something like :
sessionFactory.getCurrentSession().createQuery("Select a From A a").list().isEmpty()
...
sessionFactory.getCurrentSession().createQuery("Select z From Z z").list().isEmpty()
I found this for mysql : List of non-empty tables in MySQL database but it is specific.
Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我所做的是将我的“hibernate.hbm2ddl.auto”设置为在 hibernate.cfg.xml 中创建,并且在每个测试中我使用重置我的 sessionfactory
这样为每个测试重新创建数据库
What I do is set my "hibernate.hbm2ddl.auto" to create in the hibernate.cfg.xml and in each test I reset my sessionfactory using
This way the database is recreated for each test
怎么样
How about