Вопрос

Я ищу быстрый (действительно быстрый) способ протестировать изменения в запросах спящего режима.У меня огромное приложение с тысячами различных запросов HQL (в файлах XML) и более чем 100 сопоставленными классами, и я не хочу повторно развертывать все приложение, чтобы просто протестировать одно крошечное изменение в запросе.

Как будет выглядеть хорошая настройка, которая освободит меня от повторного развертывания и обеспечит быструю проверку запросов?

Это было полезно?

Решение

В Intellij IDEA 8.1.3 механизм выбора называется «Facet». Чтобы мгновенно протестировать HQL-запросы:

<Ол>
  • создать источник данных Инструменты - > Источник данных, Добавить источник данных, определить драйвер, имя пользователя и пароль для вашей разработки db
  • если у вас уже нет hibernate.cfg или вы настраиваете фабрику сеансов не так, как через xml: создайте файл hibernate.cfg, ссылающийся на все сопоставления XML (определите имя для фабрики сеансов, просто для упрощения обработки )
  • в «Структуре проекта» добавьте фасет в выбранный вами модуль и назначьте недавно определенный источник данных новому фасету
  • переключиться на представление Java EE
  • Открытые аспекты Hibernate - узел
  • Щелкните правой кнопкой мыши фабрику сеансов и выберите " Открыть консоль HQL "
  • введите 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 из данного списка.

    В затмении

    <Ол>
  • Установите инструменты Hibernate (Jboss)
  • Переключение в режим гибернации в зависимости от
  • Откройте / щелкните окно конфигурации Hibernate
  • Rt Нажмите в окне и добавьте конфигурацию
  • Rt Нажмите на окно, нажмите / откройте редактор HQL
  • Введите и выполните свои HQL-запросы и получите результат в окне результатов Hibernate Query
  • Перейдите по этой ссылке для получения дополнительной информации http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top