1

私のデータストアテーブルはdocumentという名前で、次のように構成されています:Key、Write Ops、ID / Name、html、name。サンプルデータは次のとおりです。

Key: aglub19hcHBfaWRyDgsSCGRvY3VtZW50GAEM 
Write Ops:6
ID/Name:1
html:"<div>something</div>
name: "Untitled name"

最初の3つの列はGoogleAppEngineによって作成されます。以下のコードを使用して、データストアからエンティティをフェッチします。

int PAGE_SIZE = 20;
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
PreparedQuery queryString = datastore.prepare(new Query("document"));
int rowCount = queryString.countEntities();
int offset = 0;
//fetch results from datastore based on offset and page size
FetchOptions fetchOptions = FetchOptions.Builder.withLimit(PAGE_SIZE);
QueryResultList<Entity> results = queryString.asQueryResultList(fetchOptions .offset(offset));

.getKey()メソッドを使用してエンティティからKey列を取得しようとすると、問題が発生します。Key列からランダムな文字列を返す代わりに、document( "1)を返します。結果の配列からKeysを取得する方法はありますか?

4

1 に答える 1

2

キーは「ランダムな文字列」ではありません。これは、Keyオブジェクトの文字列エンコーディングです。

私はJavaではなくPythonAPIを使用していますが、Pythonではstr()、Keyインスタンスを呼び出すだけで、エンコードされたバージョンを取得できます。Javaでは、を使用できるkey.toString()場合もあれば、何らかの方法でシリアル化する必要がある場合もあります。

于 2012-08-08T14:55:00.597 に答える