2013-08-05 16 views
11

Sto usando Eclipse Facets per l'implementazione di JPA 2.0 e Hibernate 4.2. Penso di ricordare che nel progetto precedente non avrei dovuto registrare un Entity Bean nel persistence.xml. Mi sbaglio?È necessario che ogni Entity Bean sia registrato in persistence.xml?

Annotazione un POJO (in questo caso Pub.java) con @Entity lancerà il seguente errore nel Eclipse vista marcatore/problema:

Class "com.jacky.webapp.model.Pub" is managed, but is not listed in the persistence.xml file Pub.java /webapp/src/main/java/com/jacky/webapp/model  

Qualsiasi indizio? Grazie.

+0

Salve nel precedente progetto in cui si utilizza 'Spring ORM'? – iNan

+0

No, non l'ho fatto. In generale, ogni Entity Bean deve essere registrato con Java EE 6 e la relativa implementazione JSR JPA? – feder

+0

Controlla questa risposta: http://stackoverflow.com/a/21622259/1875434 – abbas

risposta

1

in APP è necessario per compilare un file chiamato persistence.xml dove dite Hibernate quali classi sarà gestito da ORM.
Controllare this question e la sua risposta accettata

+1

Bellabax, ho notato, che puoi taggare le classi per superare l'impedenza relazionale dell'oggetto. Tuttavia, è dichiarativo e preferisco applicare lo stile di annotazione. Ho appena ricevuto conferma da un collega, che la mia ipotesi/memoria è vera. Non è necessario registrare manualmente le classi in peristence.xml o orm.xml se si utilizzano annotazioni. Presumibilmente, questo errore deve essere un errore di Eclipse (4.3 Kepler). – feder

+0

Ma il tuo codice funziona bene durante l'esecuzione? Pensavo avessi problemi durante l'esecuzione. Probabilmente hai ragione ed è solo un problema di validazione di eclissi –

+0

Sì, funziona bene quando distribuito manualmente (Eclipse si rifiuta di distribuire WAR errati). Sì, sembra un errore di Keplero. Provo con Juno più tardi questo giorno. – feder

33

Come già scritto ecco la soluzione:

di controllare JPA proprietà del progetto e assicuratevi di selezionare "Scopri le classi annotate automaticamente" nella sezione "Gestione classe persistente". Ciò dovrebbe fornire la convalida corretta per il tuo caso d'uso.

+0

grazie mille, ha funzionato per me. - @kotev –

+0

grazie, ha funzionato anche per me – Toren

+0

che ha reso la magia !! grazie !! –

0

È possibile che quando hai creato il progetto, hai scelto "Progetto JPA" invece di "Progetto java". Nel caso in cui non vedi "Progetto Java", segui "altro" e sotto il tipo di procedura guidata "java" per vedere il "Progetto Java".

Problemi correlati