Wenn ich eine Klasse mache, die sowohl "gae.encoded-pk" als auch "gae.pk-id" persistent definiert, wird der codierte-pk aktualisiert, aber die ID bleibt null . Es gibt keine Ausnahme und der Code ist eine direkte Kopie aus der Google-Dokumentation, so dass ich nicht weiß, was hier passiert.Datanucleus gae.pk-id nicht gefüllt mit makePersistent
Die Klasse definiert:
@PersistenceCapable
public class MyClass {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String encodedKey;
@Persistent
@Extension(vendorName="datanucleus", key="gae.pk-id", value="true")
private Long keyId;
Und ich mache es hartnäckig wie folgt aus:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(myInstance);
// myInstance = pm.makePersistent(myInstance); - Produces the same result.
} finally {
pm.close();
}
ich den Debugger bin mit durch diesen Code zu dem Schritt, aber die keyId bleibt null, auch nach Der Persistenzmanager ist geschlossen.
Ich sollte auch darauf hinweisen, dass dies lokal mit dem Google Appengine Development Kit ausgeführt wird. Irgendwelche Hinweise, wie ich dies debuggen könnte, würde sehr geschätzt werden!
das gleiche Problem hier – craigrs84