Domanda

Sto cercando di costruire applicazioni database utilizzando GWT 1.5.3. Io uso le annotazioni JPA con i miei oggetti. Sembra che in modalità hosted RPC del GWT funziona bene. Ma quando provo a compilare la mia applicazione usando GWT-compilatore ricevo errori come: "La javax.persistence importazione non può essere risolto", "Entità non può essere risolto in un tipo". toplink-essentials.jar è già incluso nel mio percorso del progetto. Quali impostazioni altro devo per risolvere questo problema?

È stato utile?

Soluzione 4

Ok, ho trovato quello che mi mancava. Avevo bisogno di includere APP-annotazioni-source.jar nel mio percorso GWT-compilatore nello script myapp-compile.cmd (o in file di generazione formica). Dal modo in cui qualcuno può dirmi l'origine di questo file APP-annotazioni-source.jar?

Altri suggerimenti

È possibile utilizzare Gilead ( http://sourceforge.net/projects/gilead/ ) libreria per gestire in modo trasparente entità JPA con GWT.

Saluti

È necessario includere il codice sorgente per le annotazioni JPA nel percorso di costruzione per il progetto GWT. Vedi qui per maggiori dettagli:

http: // codice. google.com/p/google-web-toolkit/issues/detail?id=1830&can=1&q=jpa

In particolare questo file jar che risolvere il problema:

http: // Google- web-toolkit.googlecode.com/issues/attachment?aid=1475633892125294312&name=jpa-annotations-source.jar

Il problema generale dell'Assemblea parlamentare paritetica e GWT è che GWT per sé non supporta le classi JPA fantasia, quindi basta fare semplice POJO entità persistenti DTO che implementa il java.io.Serializable e hanno semplici annotazioni di risorse JPA. È necessario creare le classi di entità nel campo di applicazione del client GWT o ce l'ha sotto il pacchetto yourproject.client o aggiungere con

percorso di origine = "client"

percorso di origine = "folderOfYourEntities"

nel file di YouProject.gwt.xml del progetto GWT. Ciò includerà gli oggetti entità nel client GWT in modo che possano utilizzato sul lato client della RPC pure. Il DAO deve essere sul lato server e può contenere tutto ciò che vi sostiene contenitore.

Il problema che hai ora è che quando si compila, GWT compilatore saids che desn't sapere che cosa queste importazioni per annonations JPA sono nelle classi DTO entità. È per questo che avete bisogno di codici di classe javax.persistence e di origine. Il riferimento APP-annotazioni-source.jar da Rustmyself funziona. Si tratta di file di classe solo il javax.persistence compilati ei file di codici sorgente, più un Persistence.gwt.xml. Si tratta di un semplice modulo GWT per il pacchetto javax.persistence. Se si sa come rendere il proprio modulo di GWT, si dovrebbe avere problemi a fare tutto questo lavoro. Tra l'altro, la fonte ufficiale per Java EE può essere trovato nella sezione di costruzione del sito dev GlassFish wiki.glassfish.java.net

Non ci sono molte altre soluzioni che avvolgono i vostri entità PU fantasia per semplici oggetti automaticamente utilizzando proxy o per pigri loro carico in fase di esecuzione. Lavorano, ma non soluzioni ottimali. La pratica migliore è quella di rendere le cose semplici e robusto fin dall'inizio avendo entità POJO JPA DTO sul contesto client GWT e pieno DAO soffiato sul server.

GWTPersistence Esempio
Ho aggiunto un esempio di lavoro effettivo su come fare GWT e JPA lavorare senza problemi. Si tratta di un progetto NetBean con i codici sorgente e file di distribuzione. Vedere GWTPersistence su NingZhang.info

Sto anche lavorando con JPA <->. GWT trasformazione dei dati etc

Nel tentativo di eliminare lo strato DTO ho usato Gilead troppo.

La mia obiezione è qui sulla traduzione javax.persistence. Per evitare questo ho utilizzato le dichiarazioni di mapping XML JPA (orm.xml)

Semplicemente, tenere un'altra versione delle vostre entità ma senza le annotazioni!

rimbalzo sul commento di sinergica, è ora (da GWT 1.5) solo bisogno di aggiungere

<source path='javax.persistence'/>

al tuo Module.gwt.xml

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