2

異なるエンティティグループに属するかなりの量のエンティティを変更する必要があります。次のように、キーでソートされた、祖先以外のクエリを実行する場合。

Query query = new Query( "Kind" )
                      .setFilter( ... )
                      .addSort( Entity.KEY_RESERVED_PROPERTY, ASC or DESC );

結果は常にエンティティグループごとに並べ替えられますか?親(または祖父母)のキーが変更されるまで結果を繰り返し処理し、競合を避けるために、同じグループ内のすべてのエンティティに対して単一のトランザクションを作成することを計画しています。

これは期待どおりに機能しますか?他に何か提案はありますか?

ありがとうございました。

4

2 に答える 2

1

はい。キーで並べ替えると、祖先リスト内の各エンティティで順番に並べ替えられます。たとえば、最初にルートエンティティで、次に子で並べ替えられます。

于 2013-01-14T16:33:11.147 に答える
0

Kindle クエリまたは祖先クエリは、KEY でのみ並べ替えることができます。

キーでソートしていますが、それで問題ありません。

キーは PARENT+KIND+ID の結果です

各種類のキーは KEY の一部です。したがって、すべての結果は種類でソートされ、次にキーでソートされます。

GAE KEYSより

すべてのモデル インスタンスには、インスタンスのエンティティの種類と一意の識別子を含む識別キーがあります。識別子は、インスタンスの作成時にアプリケーションによって明示的に割り当てられるキー名の文字列か、インスタンスがデータストアに書き込まれる (p​​ut) ときに App Engine によって自動的に割り当てられる整数の数値 ID のいずれかです。

于 2013-01-14T13:10:02.313 に答える