venerdì, maggio 25, 2012

Generare con Maven gli Script DDL di inizializzazione del nostro database partendo dalle annotazioni JPA.

La base dalla quale parte questo post è che usiate Maven e JPA Annotation per la vostra applicazione. Se il vostro cruccio è quello di vedere in faccia le tabelle che saranno generate niente di meglio che usare un plug in molto utile e ben rodato hibernate3-maven-plugin.
Aprite il vostro file pom.xml e nella sezione <profiles> inserite questo pezzo di xml:
N.B. acmePU dovrà contenere il nome che avete dato alla vostra persistenceunit nel file persistence.xml. Fatto questo per automatizzare il più possibile questo script c'e' la possibilità di aggiungere un profilo per ogni database per il quale si vuole generare l'sql. Io ve ne fornisco un paio. Sempre nella sezione <profiles> del pom.xml inserire: Fatto! Ora per lanciare la generazione basterà scrivere a riga di comando: Naturalmente l'esempio è per mysql ma voi potrete usare quello che più vi aggrada. Se non avete voglia di scrivere, vi fornisco il target ant che potrà fare il lavoro al posto vostro: Buon Lavoro

Aggiornamento: Settembre 2012.
Potrebbe accadere che a causa della configurazione di qualche nostra JPA annotation il plug in ci dia il seguente errore:
Questo accade quando espicitamente configuriamo un array di javax.persistence.CascadeType nelle nostre annotazioni:
Il motivo di questo errore è che quando Maven avvia il goal hbm2ddl CascadeType non è nel classpath del plugin. Per ovviare a questo inconveniente basta modificare la definizione del plugin ed aggiungere la dipendenza alle librerie di jpa2.
Allora modificarela in questo modo:

Nessun commento:

Posta un commento