sto usando Goole App Engine per costruire il mio API REST, ho già segnato la mia classe come PersistenceCapable e anche mi sono definito il mio @PrimaryKey e anche contrassegnato come @Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY), inoltre ho già creato EndPoint. ma quando scrivo nella finestra del terminale un comando di arricciatura per inserire una nuova entità o registro non funziona. questo è il codice:Generazione automatica Id IdGeneratorStrategy
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Student{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
private String studentName;
....
....
....
}
questo è il comando riccio e la risposta dal mio server locale. quando provo ad inserire una nuova entità
curl -H 'Content-Type: application/json' -d'{"studentName": "myname"}' htto://localhost:8889/_ah/api/utp/v1/student
e questa è la risposta dal server locale.
"error" : {
"message" : "javax.jdo.JDOFatalInternalException: El valor de llave dado para construir una identidad de SingleFieldIdentity de tipo \"class javax.jdo.identity.LongIdentity\" para la clase \"class com.alex.wserver.Student\" es nulo.\nNestedThrowables:\norg.datanucleus.exceptions.NucleusException: El valor de llave dado para construir una identidad de SingleFieldIdentity de tipo \"class javax.jdo.identity.LongIdentity\" para la clase \"class com.alex.wserver.Student\" es nulo."
ho pensato che id è stato generato automaticamente un inserito. ma non sta succedendo qui. A differenza di inserire un id insieme
- sono la mia classe sbagliata?
- sono la mia richiesta POST/json Ok?
Grazie in anticipo.
e il registro dice cosa? (anche io non posso leggere quei geroglifici che hai postato sopra, non vedo nemmeno il codice di persistenza Java, come pm.makePersistent). – DataNucleus
Potresti aver incollato direttamente i frammenti di codice. Le immagini sono un po 'piccole e difficili da capire. –
Ho già cambiato le immagini per codice snippato ... scusa per le immagini cattive ... – AlexSanchez