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

Kindles 查询或祖先查询只能按 KEY 排序。

您正在按键排序,这没关系。

键是 PARENT+KIND+ID 的结果

每个种类的密钥都是密钥的一部分。因此,您的所有结果都将按种类排序,然后按关键字排序。

来自GAE KEYS

每个模型实例都有一个标识键,其中包括实例的实体类型以及唯一标识符。标识符可以是密钥名称字符串,由应用程序在创建实例时显式分配,也可以是整数 ID,由 App Engine 在实例写入(放置)到数据存储区时自动分配。

于 2013-01-14T13:10:02.313 回答