示例应用程序中的com.google.appengine.api.datastore.DatastoreNeedIndexException错误

时间:2014-12-09 14:53:15

标签: java google-app-engine google-cloud-platform google-cloud-datastore

我正在测试 GAE模块应用。我的应用程序很简单,它没有任何查询到Cloud SQL或任何地方,它只是一个helloworld。

但是,我得到了f

com.google.appengine.api.datastore.DatastoreNeedIndexException: no mat
    <datastore-index kind="Greeting" ancestor="true" source="manual">
        <property name="date" direction="desc"/>
    </datastore-index>

怎么可能?

我已经多次开发其他GAE应用程序,我从未遇到过这个问题

1 个答案:

答案 0 :(得分:2)

查询需要编入索引,否则就无法工作。在这种情况下,似乎当您返回问候语时,您按日期对它们进行了排序。数据存储区根据实体的索引字段将数据存储在预先排序的表中;这意味着如果您从未编入索引&#34; date&#34;,则不存在所有问候按日期排序的表格。

您只需将该数据存储区索引块添加到WEB-INF文件夹中的datastore-indexes.xml即可修复它。

添加索引后,重新部署并等待大约10分钟,以便将所有旧数据编入索引(如果您有更多数据,则可能需要更长时间)。再试一次,现在应该可以了。