gpt4 book ai didi

java - allocateIds DatastoreService 实际使用情况

转载 作者:行者123 更新时间:2023-12-02 05:54:57 27 4
gpt4 key购买 nike

我可以询问 DatastoreService 的一些实际用途

 - allocateIdRange(KeyRange range)
- allocateIds(Key parent, java.lang.String kind, long num)
- allocateIds(java.lang.String kind, long num)

最佳答案

allocateIds() 的用途:

  1. 您想要使用整数 ID 在事务中写入多个相互引用的实体。在提交之前,您不会知道“自动 ID”(即,如果您未设置 key 的 ID/名称,您会得到什么),因此您无法使实体“指向彼此”(例如,使用引用属性)作为 txn 的一部分。但是,如果您先分配一些 ID,则可以手动将 key ID 设置为您分配的 ID,然后在事务中写入相互引用的实体,而不会有与其他自动 ID 发生冲突的风险。

  2. 您希望面向用户的 ID 是人类可读的,例如对于案例编号。默认的自动 ID 是大数字(约 16 位十进制数字),但 allocateIds() 为您提供“旧式”顺序 ID,通常会小得多(6 或 7 位数字)。

如果您要为其分配 ids 的实体具有祖先,请使用采用父 Key 参数的函数。否则,使用其他 allocateIds,您只需指定种类。

至于 allocateIdRange(),我建议您不要使用它。它的设计目的是允许您保留一个整数 id 空间 block 来进行自己的手动分配,但这在客户端正确管理是困难且低效的,并且也不再得到很好的支持(它将在“新型“大 ID”)。

关于java - allocateIds DatastoreService 实际使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23190796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com