2009-04-21 1 views
0

Ich habe die folgende Java-Klasse:Groovy + JPA + Frühling arbeitet nicht

package domain; 

//imports 

@Entity 
public class User { 

    @Id @GeneratedValue 
    private long id; 

    private String name; 
    private String password; 
    private String mail; 
    //Getters, Setters and Constructors 
} 

Wenn ich die Dateierweiterung ändern zu arbeiten .groovy, stoppt die Anwendung. In der Tat wirft es diesen Stacktrace:

org.springframework.dao.InvalidDataAccessApiUsageException: Unbekannte Einheit: domain.User; verschachtelte Ausnahme ist java.lang.IllegalArgumentException: Unbekannte Einheit: domain.User

I this book und der Autor erklärt, dass jede groovy Klasse gerade lese die Stelle einer Java-Klasse seine Erweiterung nur die Änderung nehmen. Warum erkennen Spring und JPA meine groovige Klasse nicht?

Hat jemand diese Technologien erfolgreich eingesetzt?

Antwort

2

Es gibt nicht viele Informationen hier, so Zeit zu erraten.

Scheint, wie Frühling kann nicht die User.class Datei. Die Groovy- und Java-Compiler haben möglicherweise unterschiedliche Ausgabepfade, und der Groovy-Ausgabepfad befindet sich möglicherweise nicht in Ihrem Klassenpfad oder Ihrem Bereitstellungssatz.

Ihre War zu prüfen, ist User.class drin? Ist es in WEB-INF/Klassen/Domäne? Wenn nicht, dann scheint der Groovy-Ausgabeordner nicht in Ihrer Bereitstellung zu sein. Versuchen Sie, den Groovy-Ausgabeordner so zu ändern, dass er mit Ihrem Java-Ausgabeordner übereinstimmt.

0

Beide Groovy (.groovy) und Java (.java) Quelldateien Bytecode kompiliert (.class-Dateien). Es ist keine Umbenennung von Dateiendungen erforderlich.

Wenn Sie groovy Code haben, müssen Sie den groovy Compiler benutzen, um eine .class Datei zu erzeugen, ähnlich wie eine .java Datei eine .class Datei mit javac erzeugt.

Es scheint keine JPA oder Frühling Thema.

+0

Es scheint zu kompilieren, weil die Klasse, die die User.groovy verwendet, sauber kompiliert. Ich muss die Quelldatei-Erweiterung ändern, wenn ich soweit wie möglich von Java zu Groovy übergehe. –

+1

Wahr, Rob sagte nur, dass das Ändern der Erweiterung irrelevant sei (obwohl notwendig), da Spring das kompilierte Ergebnis (in beiden Fällen .class-Datei) verwenden würde. – billjamesdev

Verwandte Themen