9

我正在使用 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)

记录正确地放入数据存储区,因为它们有一个 ID,但这是在提取数据时。

所以我必须暂时回滚到以前的状态。它在此处声明,您可以通过修改appengine-web.xml 中的auto_id_policy来指定旧 ID 生成。我尝试将其添加到文件中:

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

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

4

2 回答 2

1

我们知道这个问题并正在努力修复。

于 2013-06-13T21:23:50.047 回答
0

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

于 2013-06-16T01:57:22.320 回答