Как я могу проверить, что все мои таблицы пусты с HQL / Hibernate? - PullRequest
2 голосов
/ 14 февраля 2012

У меня большой набор функциональных тестов.Каждый тест независим.Но время от времени возникает проблема, и один из этих тестов протекает (исключение происходит до того, как данные могут быть очищены и т. Д.), И некоторые из последующих тестов могут завершиться неудачей.

Итак, первое, что я хочу сделатьВ каждом из этих тестов проверяется, действительно ли база данных пуста.Было бы полезно знать, что поломка вызвана утечкой, а не регрессией.

Я хотел бы знать, могу ли я сделать это с помощью одного запроса, потому что я хотел бы избежать выполнения и поддержки чего-либонапример:

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

Я нашел это для mysql: Список непустых таблиц в базе данных MySQL , но он специфический.

Спасибо:)

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Что я делаю, так это настраиваю «hibernate.hbm2ddl.auto» для создания в hibernate.cfg.xml, и в каждом тесте я сбрасываю свою сессионную фабрику, используя

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

Таким образом, база данных воссоздается для каждого теста

0 голосов
/ 14 февраля 2012

Как насчет

session.createQuery("select 1 from table").setMaxSize(1).list().isEmpty()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...