2011-01-06 29 views
1

Ich habe eine ziemlich seltsame Sache passiert.Frühling jpa Hibernate unbekannte Entität Ausnahme

Wenn ich meinen Zielordner säubere und meine Tests durchführe, funktionieren sie gut. wenn ich es wieder ohne Reinigung laufen bekomme ich folgende Fehler

java.lang.IllegalArgumentException: Unknown entity: com.merc.domain.EventLog 
     at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:675) 
     at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:240)

Irgendwelche Ideen, warum dies geschehen könnte, wenn die Zielordner nur die kompilierten Klassen haben. Ich benutze Maven zu bauen

Antwort

0

Für Netbeans Benutzer ist dies ein Augenöffner.

Ich habe ein Maven-Projekt in Netbeans. Wenn ich die Dateien im Zielordner lösche, klicke mit der rechten Maustaste auf meine test.java Datei in Netbeans und wähle "test file". Netbeans führt die Maven-Befehle aus, um die Datei und den Klassenpfad zu erstellen, und führt dann den Test mit Dateien in Testressourcen aus, was gut funktioniert. Wenn die Java-Klassen jedoch bereits kompiliert wurden, führt Netbeans die Tests mit den Ressourcen aus dem Klassenordner anstelle des Testklassenordners aus. In meinem Fall fehlten in persistence.xml im classes-Ordner ein paar Details, was mich nicht interessierte, da ich mich mehr auf die Komponententests konzentrierte.

0

Gleiches in Eclipse, Sie müssen Build-Pfad konfigurieren, damit Eclipse feststellt, dass es nach Dateien im richtigen Ausgabeverzeichnis suchen muss.

Sie können Ihren Maven Build auch so konfigurieren, dass er mit dem übereinstimmt, wo JUnit nach Ihren Dateien sucht.

+0

Ich versuchte den gleichen Test htat in Netbeans mit Eclipse fehlgeschlagen und es arbeitete in Eclipse, das ist eine Möglichkeit, die ich herausgefunden habe, dass das Problem mit Netbeans eher als etwas anderes war. – user373201

Verwandte Themen