Quando creo una classe che definisce persistentemente "gae.encoded-pk" e "gae.pk-id", la codifica-pk viene aggiornata, ma l'ID rimane nullo . Non c'è eccezione che viene lanciata e il codice è una copia di copia diretta dalla documentazione di google, quindi non sono a conoscenza di ciò che potrebbe accadere qui.Datanucleus gae.pk-id non popolato su makePersistent
La classe definisce:
@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;
E io lo rendono persistente in questo modo:
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
pm.makePersistent(myInstance);
// myInstance = pm.makePersistent(myInstance); - Produces the same result.
} finally {
pm.close();
}
Sto utilizzando il debugger per passare tramite questo codice, ma il keyid rimane nullo, anche dopo il gestore di persistenza è chiuso.
Vorrei anche sottolineare che questo è in esecuzione localmente utilizzando il kit di sviluppo appengine google. Qualsiasi suggerimento su come avrei potuto eseguire il debug di questo sarebbe molto apprezzato!
stesso problema qui – craigrs84