2009-05-12 9 views
1

Ich habe 3 Klasse mit Bezug:appengine - java persistent

  • Mitglied 1-n Tracker
  • Link-1-n-Tracker

mit einer Eins-zu-viele bidirektionale Beziehung im Besitz

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class Member { 
     @PrimaryKey 
     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
     private Key key; 

     @Persistent(mappedBy = "member") 
     private List<Tracker> trackers; 

} 

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class Link { 
     @PrimaryKey 
     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
     private Key key; 

     @Persistent(mappedBy = "link") 
     private List<Tracker> trackers; 

} 

@PersistenceCapable(identityType = IdentityType.APPLICATION) 
public class Tracker { 
     @PrimaryKey 
     @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
     private Key key; 

     @Persistent 
     private Member member; 

     @Persistent 
     private Link link; 

} 

Ich erstelle einen neuen Tracker:

member = new Member(); 
member.name = "blah"; 

link = new Link(); 
link.url = "http://blahblah.blah"; 

tracker = new Tracker(); 
tracker.setMember(member); 
tracker.setLink(link); 

pm.makePersistent(tracker);//error 

wirft

The class "The class "zodpob.model.Tracker" is not persistable. This 
means that it either hasnt been enhanced, or that the enhanced version 
of the file is not in the CLASSPATH (or is hidden by an unenhanced 
version), or the Meta-Data/annotations for the class are not found." 
is not persistable. This means that it either hasnt been enhanced, or 
that the enhanced version of the file is not in the CLASSPATH (or is 
hidden by an unenhanced version), or the Meta-Data for the class is 
not found. 

was "enhanced" ist das?

wenn ich hartnäckig eine Klasse ohne Beziehung, dann ist es gut funktionieren

+0

Ich weiß nicht, Appengine, aber verbesserte Sounds wie eine Art Bytecode Verbesserung. Vielleicht benötigt Appengine einen Vorbereitungsschritt, bevor der Code ausgeführt wird? – rudolfson

+0

Sie verwenden DataNucleus, um es zu verbessern. – Randin

Antwort

2

Stellen Sie sicher, das Datanucleus-Plugin verwenden ....

hier ihre Website ist ...

link text

... hier ist, wie es installieren auf die IDE von Eclipse ...

link text

... und hier ist eine tut es mit JDO mit ....

link text

Ich hoffe, das hilft und viel Glück.