Domanda

Sto cercando un modo rapido (molto veloce) per testare le modifiche alle query di ibernazione. Ho una grande applicazione con migliaia di query HQL diverse (in file XML) e oltre 100 classi mappate e non voglio ridistribuire l'intera applicazione per testare solo una piccola modifica a una query.

Come sarebbe una buona installazione per liberarmi dalla ridistribuzione e abilitare un controllo rapido delle query?

È stato utile?

Soluzione

Con Intellij IDEA 8.1.3 il meccanismo di scelta si chiama 'Facet'. Per testare immediatamente le query HQL:

  1. crea un'origine dati Strumenti - > Origine dati, Aggiungi origine dati, definisce driver, nome utente e password del tuo sviluppo db
  2. nel caso in cui non si abbia già un hibernate.cfg o si configuri il factory della sessione in un modo diverso rispetto a via xml: creare un file hibernate.cfg che fa riferimento a tutti i mapping XML (definire un nome per il factory di sessione, solo per una gestione più semplice )
  3. in "Struttura del progetto" aggiungi Facet al tuo modulo prescelto e assegna l'origine dati definita di recente al nuovo facet
  4. passa a Java EE View
  5. Apri facce ibernate - Nodo
  6. Fai clic con il pulsante destro del mouse su Factory di sessione e scegli " Apri console HQL "
  7. inserisci la query HQL nella console ... e hai finito.

scusa per questa domanda RTFM.

Altri suggerimenti

Puoi utilizzare strumenti di ibernazione in eclipse per eseguire query. Ciò ti consentirà di eseguire HQL ogni volta che vuoi provare qualcosa.

Se si utilizza IntelliJ, è presente Hibero .

Esiste un editor autonomo di sun, ma non l'ho provato.

Ho scritto un semplice strumento per testare & amp; anteprima HQL, questa è solo una classe java con metodo principale.

puoi trovare il codice qui: https://github.com/maheskrishnan/HQLRunner

ecco la schermata ...

inserisci qui la descrizione dell'immagine

Ho testato le mie query HQL in unit test con il database HSQLDB. È sufficiente creare un gestore entità, eseguirne il cast in una sessione di ibernazione ed eseguire una query.

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

    final EntityManager entityManager = entityManagerFactory.createEntityManager();

    return (Session)entityManager.getDelegate();

Best Anders

Hai detto il modo più veloce, non sono sicuro se intendevi il modo più veloce per iniziare, o il modo più veloce per eseguire i test in corso, con qualche investimento iniziale per implementare i test. Questa risposta è più quest'ultima.

In precedenza ho implementato alcuni semplici test di integrazione con JUnit e DBUnit .

In sostanza, utilizzerai DBUnit per configurare il database di test con un set di dati noto e rappresentativo, quindi semplicemente JUnit per esercitare i metodi contenenti le tue query HQL e verificare i risultati.

Ad esempio,

Imposta prima il tuo database in modo che contenga solo un set fisso di dati, ad esempio

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

Questo è qualcosa che faresti nel metodo setup () del tuo caso di test JUnit.

Ora supponiamo che tu abbia un DAO per questa entità, e c'è un " findProductWithPriceGreaterThan (int) " metodo. Nel tuo test, faresti qualcosa del tipo:

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

Nel mercato eclipse, puoi cercare JBoss Tools e scegliere solo gli strumenti di ibernazione dall'elenco indicato.

In eclipse

  1. Installa gli strumenti di ibernazione (Jboss)
  2. Passa alla modalità di sospensione ibernazione
  3. Apri / fai clic sulla finestra Sospendi configurazione
  4. RT Fare clic sulla finestra e Aggiungi configurazione
  5. Rt Fare clic sulla finestra, fare clic su / aprire l'editor HQL
  6. Digita ed esegui le tue query HQL e ottieni i risultati nella finestra dei risultati di Hibernate Query

Segui questo link per maggiori informazioni http://docs.jboss.org/tools/OLD/2.0.0.GA/hibernatetools/en/html/plugins.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top