2012-11-10 2 views
2

J'ai essayé de comprendre comment résoudre ce problème:Il doit y avoir un champ @Id (String, long ou long)

There must be an @Id field (String, Long, or long) 

Bien qu'il y ait un @Id annoation dans la classe. J'ai essayé de faire mvn propre, projet Eclipse propre, il n'y a pas d'erreurs de compilation. Cependant, lorsque j'exécute mon application et que j'essaie de conserver une entité enregistrée, j'obtiens cette erreur. J'utilise Objectify-4 et j'utilise le modèle OfyLoader.

CODE:

import java.util.List; 
import com.googlecode.objectify.annotation.Entity; 
import com.googlecode.objectify.annotation.Id; 

@Entity 
public class TestEntity { 
    @Id 
    private Long id; 
    private List<String> strList; 

    public TestEntity() {} 

    public TestEntity(List<String> strList){ 
     this.setStrList(strList); 
    } 

    public Long getId() { 
     return id; 
    } 
    public void setId(Long id) { 
     this.id = id; 
    } 
    public List<String> getStrList() { 
     return strList; 
    } 
    public void setStrList(List<String> strList) { 
     this.strList = strList; 
    } 
} 
+2

Peut-on voir le code? –

+0

Bien sûr, j'ai mis à jour ma question avec le code d'entité, j'ai effectivement créé un nouveau TestEntity juste pour tester les choses, ayant toujours le même problème. –

+0

Je suppose que vous devez importer le '@ Id' d'un autre endroit. –

Répondre

0

Vous devez tout d'abord package puis exécutez votre projet. Parce que si vous exécutez la jetée, par exemple, l'opération ne peut pas exécuter voir les annotations

1

Assurez-vous que le objectiver 4 est sur votre chemin de classe et la seule importation id est:

import com.googlecode.objectify.annotation.Id;