Question

Je recherche un moyen rapide (très rapide) de tester les modifications apportées aux requêtes d'hibernation. J'ai une énorme application avec des milliers de requêtes HQL différentes (dans des fichiers XML) et plus de 100 classes mappées et je ne veux pas redéployer l'application dans son intégralité pour simplement tester un changement minime d'une requête.

À quoi ressemblerait une bonne configuration pour me libérer du redéploiement et permettre une vérification rapide des requêtes?

Était-ce utile?

La solution

Avec Intellij IDEA 8.1.3, le mécanisme de choix s'appelle «Facette». Pour tester instantanément les requêtes HQL:

  1. créer une source de données Outils - > Source de données, Ajouter une source de données, définissez le pilote, le nom d'utilisateur et le mot de passe de votre base de développement
  2. au cas où vous ne possédez pas déjà un fichier hibernate.cfg ou que vous configuriez votre fabrique de sessions d’une autre manière que par le biais de xml: créez un fichier hibernate.cfg référençant tous les mappages XML (définissez un nom pour la fabrique de sessions, simplement pour en faciliter la gestion) )
  3. dans 'Structure du projet', ajoutez une facette au module de votre choix et affectez la source de données récemment définie à la nouvelle facette
  4. basculez vers Java EE View
  5. Ouvrir les facettes Hibernate - Nœud
  6. Cliquez avec le bouton droit sur Fabrique de sessions et choisissez "Ouvrir la console HQL"
  7. .
  8. entrer une requête HQL dans la console ... et vous avez terminé.

désolé pour cette question RTFM.

Autres conseils

Vous pouvez utiliser les outils d'hibernation dans eclipse pour exécuter des requêtes. Cela vous permettra d’exécuter HQL chaque fois que vous voulez essayer quelque chose.

Si vous utilisez IntelliJ, il existe un Hibero .

Il existe un éditeur autonome de sun, mais je ne l'ai pas essayé.

J'ai écrit un outil simple pour tester & amp; preview HQL, ceci est juste une classe java avec la méthode principale.

vous pouvez trouver le code ici: https://github.com/maheskrishnan/HQLRunner

voici la capture d'écran ...

entrer la description de l'image ici

Je teste mes requêtes HQL dans des tests unitaires avec la base de données HSQLDB. Créez simplement un gestionnaire d’entités, lancez-le dans une session de veille prolongée et interrogez-le.

    final EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("tacs-test", props);

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

Meilleur Anders

Vous avez dit que le moyen le plus rapide, mais je ne savais pas trop si vous vouliez dire le moyen le plus rapide de procéder, ou le moyen le plus rapide de réaliser des tests en continu, avec un investissement initial pour la mise en œuvre des tests. Cette réponse est plus le dernier.

Pour ce faire, j’ai précédemment appliqué des tests d’intégration simples avec JUnit et DBUnit .

Essentiellement, vous utiliserez DBUnit pour configurer votre base de test avec un ensemble de données connu et représentatif, puis JUnit utilisera les méthodes contenant vos requêtes HQL et vérifiera les résultats.

Par exemple,

Configurez d'abord votre base de données pour ne contenir qu'un ensemble fixe de données, par exemple,

Product Name, Price
Acme 100 Series Dynamite, $100
Acme 200 Series Dynamite, $120
Acme Rocket, $500

C’est quelque chose que vous feriez dans la méthode setup () de votre cas de test JUnit.

Supposons maintenant que vous avez un DAO pour cette entité et qu'il existe un "findProductWithPriceGreaterThan (int)". méthode. Dans votre test, vous feriez quelque chose comme:

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.
}

Sur le marché de l'éclipse, vous pouvez rechercher JBoss Tools et choisir uniquement les outils Hibernate dans la liste donnée.

Dans Eclipse

  1. Installer les outils Hibernate (Jboss)
  2. Passer en veille prolongée
  3. Ouvrir / cliquer sur la fenêtre de configuration Hibernate
  4. Cliquez sur la fenêtre et ajoutez une configuration
  5. Cliquez sur la fenêtre, cliquez / ouvrez l'éditeur HQL
  6. Tapez et exécutez vos requêtes HQL et obtenez votre résultat dans la fenêtre de résultats d'Hibernate Query

Suivez ce lien pour plus d'informations http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top