Goole AppEngineを使用してRESTAPIを構築しています。クラスをPersistenceCapableとしてマークし、 @ PrimaryKeyを定義し、@ Persistent (valueStrategy = IdGeneratorStrategy.IDENTITY)としてマークしました。また、すでにEndPointsを使用しています。生成されます。しかし、ターミナルウィンドウにcurlコマンドを入力して新しいエンティティまたはレジストリを挿入すると、機能しません。これはコードです:
@PersistenceCapable(identityType = IdentityType.APPLICATION)
class Student{
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Long id;
private String studentName;
....
....
....
}
これは私のローカルサーバーからのcurlコマンドと応答です。新しいエンティティを挿入しようとすると
curl -H 'Content-Type: application/json' -d'{"studentName": "myname"}' htto://localhost:8889/_ah/api/utp/v1/student
これはローカルサーバーからの応答です。
"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."
私はidが自動的に生成されて挿入されたと思っていました。しかし、それはここでは起こっていません。IDを一緒に挿入するのとは異なり
- 私のクラスは間違っていますか?
- POST / jsonリクエストは大丈夫ですか?
前もって感謝します。