2010-08-11 3 views
0

J'ai activé le mode de détection automatique de EclipseLink 2.0 pour trouver @Entity classes annotées:autoscan de classe d'entité EclipseLink trouve non-entités

<exclude-unlisted-classes>false</exclude-unlisted-classes> 

Mais EclipseLink me dit que je devrais ajouter un ID à mon entité :

causée par: Exception [EclipseLink-7161] (Eclipse persistance services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException Exception description: classe entité [classe com.example .domaine.Image] n'a pas de clé primaire spécifiée. Il devrait définir soit un @Id, @EmbeddedId ou un @IdClass. Si vous avez défini PK à l'aide de l'une de ces annotations, assurez-vous que vous n'avez pas de type d'accès mixte (champs et propriétés annotés) dans votre hiérarchie de classes d'entités.

La classe exemple:

import java.util.HashSet; 
import java.util.Set; 

//@Entity No annotation! 
public class Image extends File { 

    private int width; 
    private int height; 
    private Set<Image> variants = new HashSet<Image>(); 

} 

Comment puis-je dire que EclipseLink pas @Entity classes annotées sont pas des entités?

+0

Quelle version d'EclipseLink? Êtes-vous sûr que Image dans les classes compilées n'a pas l'annotation @Entity? Le fichier est une entité? –

+0

Bon conseil avec "File as a Entity"! La classe 'File' était une entité et je l'ai commentée à des fins de test, mais la classe compilée, qui a été inspectée par Eclipselink, n'était pas à jour. Après 'mvn clean' tout fonctionne. – deamon

Répondre

1

La source du problème était une classe compilée qui avait auparavant une annotation @Entity. Le fichier de classe compilé contenait toujours cette annotation et Eclipselink la considérait comme une entité. Après avoir exécuté maven clean tout fonctionne comme prévu.

Questions connexes