2013-08-05 4 views
11

Ich verwende Eclipse Facets für JPA 2.0 und Hibernate 4.2 Implementierung. Ich denke, ich erinnere mich, dass ich im vorherigen Projekt keine Entity Bean in der persistence.xml registrieren musste. Täusche ich mich?Muss jede Entity Bean in persistence.xml registriert sein?

ein POJO mit Anmerkungen versehen (in diesem Fall Pub.java) mit @Entity den folgenden Fehler in der Eclipse-Marker/Problem Blick werfen:

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  

Jeder Hinweis? Vielen Dank.

+0

Hallo in Ihrem vorherigen Projekt, wo Sie 'Spring ORM' verwenden? – iNan

+0

Nein, habe ich nicht. Muss im Allgemeinen jede Entity Bean mit Java EE 6 registriert sein und die entsprechende JSR JPA-Implementierung? – feder

+0

Überprüfen Sie diese Antwort: http://StackOverflow.com/a/21622259/1875434 – abbas

Antwort

1

in jpa müssen Sie eine Datei namens persistence.xml kompilieren, wo Sie Hibernate mitteilen, welche Klassen von Ihrem ORM verwaltet werden.
prüfen this question und seine akzeptierte Antwort

+1

Bellabax, bemerkte ich, dass Sie die Klassen markieren können, um die objektrelationale Impedanz zu überwinden. Das ist jedoch deklarativ, und ich würde den Anmerkungsstil lieber anwenden. Ich wurde gerade von einem Kollegen bestätigt, dass meine Annahme/Erinnerung wahr ist. Keine Notwendigkeit, Klassen manuell in der Datei peristence.xml oder orm.xml zu registrieren, wenn Sie Anmerkungen verwenden. Vermutlich muss dieser Fehler ein Eclipse-Fehler (4,3 Kepler) sein. – feder

+0

Aber funktioniert der Code während des Laufs? Ich dachte, du hast Probleme während der Ausführung. Wahrscheinlich haben Sie Recht und ist nur ein Eclipse-Validierer-Problem –

+0

Ja, funktioniert gut, wenn manuell bereitgestellt (Eclipse weigert sich, errorous WARs zu implementieren). Ja, sieht wie ein Kepler-Fehler aus. Ich versuche es später an diesem Tag mit Juno. – feder

33

Wie schon geschrieben ist hier die Lösung:

Überprüfen Sie JPA Projekteigenschaften und achten Sie darauf, wählen Sie „kommentierten Klassen Entdecken Sie automatisch“ in der „Persistent Klasse Management“. Dies sollte die richtige Validierung für Ihren Anwendungsfall liefern.

+0

vielen dank, arbeitete für mich. - @ kotev –

+0

danke, arbeitete auch für mich – Toren

+0

, die die Magie !! Danke !! –

0

Es ist möglich, dass Sie beim Erstellen des Projekts "JPA-Projekt" anstelle von "Java-Projekt" ausgewählt haben. Wenn Sie "Java Project" nicht sehen, folgen Sie dem "anderen" und unter dem Wizard "Java", um das "Java Project" zu sehen.

Verwandte Themen