Как тестировать HQL-запросы?
-
20-08-2019 - |
Вопрос
Я ищу быстрый (действительно быстрый) способ протестировать изменения в запросах спящего режима.У меня огромное приложение с тысячами различных запросов HQL (в файлах XML) и более чем 100 сопоставленными классами, и я не хочу повторно развертывать все приложение, чтобы просто протестировать одно крошечное изменение в запросе.
Как будет выглядеть хорошая настройка, которая освободит меня от повторного развертывания и обеспечит быструю проверку запросов?
Решение
В Intellij IDEA 8.1.3 механизм выбора называется «Facet». Чтобы мгновенно протестировать HQL-запросы:
<Ол>извините за этот вопрос RTFM.
Другие советы
Вы можете использовать инструменты гибернации в eclipse для запуска запросов. Это позволит вам запускать HQL всякий раз, когда вы захотите что-то попробовать.
Если вы используете IntelliJ, есть Hibero . р>
Существует автономный редактор от Sun, но я не пробовал.
Я написал простой инструмент для тестирования & amp; Предварительный просмотр HQL, это всего лишь один класс Java с методом main.
вы можете найти код здесь: https://github.com/maheskrishnan/HQLRunner р>
вот скриншот ...
Я тестирую свои HQL-запросы в модульных тестах с базой данных HSQLDB.Просто создайте менеджер сущностей, переведите его в режим гибернации и выполните запрос.
final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);
final EntityManager entityManager = entityManagerFactory.createEntityManager();
return (Session)entityManager.getDelegate();
Лучший Андерс
Вы сказали, что самый быстрый способ, я не уверен, что вы имели в виду самый быстрый способ начать работу или самый быстрый способ выполнить текущие тесты с некоторыми начальными вложениями в их реализацию. Этот ответ больше последний.
То, как я делал это раньше, заключалось в том, чтобы реализовать простое интеграционное тестирование с помощью JUnit и DBUnit .
По сути, вы будете использовать DBUnit для настройки своей тестовой базы данных с известным и репрезентативным набором данных, а затем просто JUnit для выполнения методов, содержащих ваши HQL-запросы, и проверки результатов.
Например,
Сначала настройте базу данных так, чтобы она содержала только фиксированный набор данных, например
.Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500
Это то, что вы делаете в методе setup () вашего тестового примера JUnit.
Теперь давайте предположим, что у вас есть DAO для этой сущности, и есть " findProductWithPriceGreaterThan (int) " метод. В вашем тесте вы бы сделали что-то вроде:
public void testFindProductWithPriceGreaterThanInt() {
ProductDAO dao = new HibernateProductDAO();
//... initialize Hibernate, or perhaps do this in setup()
List products = dao.findProductWithPriceGreaterThan(110);
assertEquals(2, products.size());
//... additional assertions to verify the content of the list.
}
В eclipse Market вы можете искать Инструменты JBoss и выбирать только инструменты Hibernate из данного списка.
В затмении
<Ол>Перейдите по этой ссылке для получения дополнительной информации http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html р>