Google app engine 如何使用Java指定遗留增量ID

Google app engine 如何使用Java指定遗留增量ID,google-app-engine,objectify,Google App Engine,Objectify,我正在使用GAE 1.8.1,我遇到了一个关于Objectify的问题。至少我认为它是Objectify,我不确定(使用objectify4rc1)。我明白了 Caused by: java.lang.IllegalArgumentException: id cannot be zero at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:52) at com.google.appe

我正在使用GAE 1.8.1,我遇到了一个关于Objectify的问题。至少我认为它是Objectify,我不确定(使用objectify4rc1)。我明白了

Caused by: java.lang.IllegalArgumentException: id cannot be zero
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:52)
    at com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:47)
    at com.googlecode.objectify.Key.<init>(Key.java:91)
    at com.googlecode.objectify.Key.create(Key.java:39)
    at com.googlecode.objectify.impl.cmd.LoadTypeImpl.id(LoadTypeImpl.java:77)
原因:java.lang.IllegalArgumentException:id不能为零
在com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:52)上
在com.google.appengine.api.datastore.KeyFactory.createKey(KeyFactory.java:47)上
在com.googlecode.objectify.Key.(Key.java:91)
位于com.googlecode.objectify.Key.create(Key.java:39)
位于com.googlecode.objectify.impl.cmd.LoadTypeImpl.id(LoadTypeImpl.java:77)
记录被正确地放入数据存储中,因为它们有一个ID,但这取决于数据的取出

所以我不得不暂时回到以前的状态。它指出,您可以通过修改appengine-web.xml中的自动ID_策略来指定传统ID的生成。我已尝试将此添加到文件中:

<auto-id-policy>legacy</auto-id-policy>
legacy

但它不起作用,或者至少如果它所验证的XSD支持此标记,它可能会起作用。由于此原因,您无法部署应用程序。

我们已注意到此问题并正在进行修复。

问题似乎是您正在将0传递给load().id()。我认为这与分散的ID或Objectify无关。

异常修复或缺少XSD标记的修复?这方面有什么新闻吗?GoogleAppEngine Launcher在使用--auto_id_policy=legacyFuture reference调用时声明错误:参数--auto_id_policy:无效选择:'legacy'(从'sequential'、'Distributed'中选择):,从1.8.1.1开始,此问题已得到解决。我也会这么认为。但自从移动到1.8.1之后,它就做到了这一点。以前的版本很好用。如果我在代码中将0作为bug传递,那么它肯定会在每个版本中失败。你同意吗?如果没有看到调用load().id()的代码,真的很难说。您好,我遇到了与您在一个项目中遇到的问题相同的问题,该项目几个月来一直没有涉及。您只需要将您的应用程序引擎SDK从1.8.1更新到更新版本。我可以确认,在我的项目中,它的appenginesdk有1.8.1.1版本,您的XML验证成功。