我在appengine数据存储区中的实体看起来像
@Id
private long playerId;
因此,无论何时创建新实体,它都会被分配一个ID超过1000000的ID。但是,无论何时代码在本地运行,ID都从1开始,增量如2,3,4等。
我已经做了一些假设,将1000000作为最小玩家ID,所以当本地生成的ID为1,3,4等时,我的测试失败了。
有没有办法强制本地服务器或测试环境生成类似于appengine环境的更高ID。
答案 0 :(得分:1)
要指定自动ID策略,请将datastore.auto_id_allocation_policy
系统属性设置为sequential
或scattered
。
您可以按照以下方式执行此操作:
-Ddatastore.auto_id_allocation_policy=scattered
通过传递给dev_appserver宏的标志设置此系统属性:
dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered
您可以找到更多详情here。