0 votes

Groovy + JPA + Spring ne fonctionne pas

J'ai la classe Java suivante:

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
}

Lorsque je change l'extension du fichier en .groovy, l'application cesse de fonctionner. En fait, elle renvoie cette stacktrace:

org.springframework.dao.InvalidDataAccessApiUsageException: Entité inconnue: domain.User; exception imbriquée java.lang.IllegalArgumentException: Entité inconnue: domain.User

Je lis ce livre et l'auteur affirme que n'importe quelle classe Groovy peut remplacer une classe Java en changeant simplement son extension. Alors pourquoi Spring et JPA ne reconnaissent-ils pas ma classe Groovy?

Est-ce que quelqu'un a déjà utilisé ces technologies avec succès?

2voto

Bill James Points 7554

Il n'y a pas beaucoup d'informations ici, alors c'est le moment de deviner.

Il semble que Spring ne puisse pas trouver le fichier User.class. Les compilateurs Groovy et Java peuvent avoir des chemins de sortie différents, et le chemin de sortie Groovy peut ne pas être dans votre classpath, ou votre ensemble de déploiement.

Vérifiez votre War, est-ce que User.class s'y trouve? Est-il dans WEB-INF/classes/domain? Sinon, le dossier de sortie Groovy ne semble pas être dans votre déploiement. Essayez de changer le dossier de sortie Groovy pour correspondre à votre dossier de sortie Java.

0voto

Rob Beardow Points 751

Les fichiers source Groovy (.groovy) et Java (.java) seront compilés en fichiers bytecode (.class). Aucun renommage d'extension de fichier n'est nécessaire.

Si vous avez du code Groovy, vous devez utiliser le compilateur Groovy pour générer un fichier .class, tout comme un fichier .java générera un fichier .class avec javac.

Il ne semble pas s'agir d'un problème de JPA ou de Spring.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X