0

ID で永続化されたオブジェクトを取得することに行き詰まっています。エラーが発生します:

com.google.appengine.api.datastore.EntityNotFoundException: No entity was found matching the key: CNG("T78")

以下のようにオブジェクトをデータ ストアに永続化します。

Key cngKey = KeyFactory.createKey("CNG", jsonCNG.cNGID);
Entity cngEntity = new Entity("CNG", cngKey);
cngEntity.setProperty("cng_name", jsonCNG.cNGName);
cngEntity.setProperty("cng_type", jsonCNG.cNGType);
cngEntity.setProperty("cng_content", cng);

ここで cng は json 文字列です。文字列でキーを設定します: cNGID. オブジェクトを取得するために同じIDを使用しようとしています。

Key cngKey = KeyFactory.createKey("CNG", "T78")

上記のエラーが発生します。

4

2 に答える 2

1

データストアに保存していないようです。

Datastore.put(cngEntity);
于 2013-10-07T19:46:53.803 に答える
1

コンストラクターnew Entity("CNG", cngKey)は、種類と親キーでエンティティを定義しています。次に、それを取得しようとすると、親キーを提供しません: KeyFactory.createKey("CNG", "T78"). これは機能しません。両方の場所で親キーを指定する必要があります。

注 - エンティティの親の定義は、トランザクションを使用するときに重要なエンティティ グループを定義するときに使用されます。あなたはおそらくそれを望んでいませんでしたか?

代わりに、単に使用する必要がありますnew Entity(cngKey)

于 2013-10-07T19:52:03.543 に答える