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

发布于 2025-01-05 18:57:32 字数 556 浏览 0 评论 0原文

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

因此,我在每个测试中要做的第一件事是检查数据库是否真的为空。了解破损是由于泄漏而不是回归造成的会有所帮助。

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

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

白芷 2025-01-12 18:57:32

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

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

这样为每个测试重新创建数据库

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

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

This way the database is recreated for each test

要走干脆点 2025-01-12 18:57:32

怎么样

session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()

How about

session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文