如何使用Java指定旧版增量ID

Eur*_*nes 9 google-app-engine objectify

我正在使用GAE 1.8.1而且我使用新的分散ID系统遇到了Objectify的问题.至少我认为这是Objectify,我不确定(使用Objectify 4 RC1).我收到了..

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)
Run Code Online (Sandbox Code Playgroud)

记录正确地放入数据存储区,因为它们具有ID,但这是在取出数据时.

所以我必须暂时回到原来的状态.它在此声明您可以通过修改appengine-web.xml中的auto_id_policy来指定遗留ID生成.我已经尝试将此添加到文件中:

<auto-id-policy>legacy</auto-id-policy>
Run Code Online (Sandbox Code Playgroud)

但它不起作用,或者至少它可能有效,如果它验证的XSD支持此标记.因此,您无法部署应用程序.

小智 1

我们已意识到此问题并正在努力解决。