我正在尝试在数据存储区中使用以下SQL查询
Select *from users where catagory="A" ODER BY id.
我尝试了以下代码
DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
Filter filter=new FilterPredicate("catagory", FilterOperator.EQUAL, "A");
Query q = new Query("users");
q.setFilter(filter);
q.addSort("id", SortDirection.DESCENDING);
setfilter()
和addsort()
功能无法协同工作。任何建议将不胜感激。
答案 0 :(得分:0)
来自Class DatastoreNeedIndexException:
没有匹配的索引时抛出
DatastoreNeedIndexException
找到需要索引的查询。检查中的索引页面 管理控制台和您的datastore-indexes.xml文件。
在许多情况下,开发服务器会在您的应用需要时自动创建必要的索引。见Creating indexes using the development server。
但在某些情况下,不会发生自动索引更新。在这种情况下,您需要手动创建/更新索引。请参阅Creating indexes manually。
当部署应用程序代码时,更新GAE上的索引也会在大多数情况下自动发生,但有时需要手动更新。来自Updating indexes:
./appengine-java-sdk/bin/appcfg.sh update_indexes myapp/war
GAE索引更新后,可能需要一段时间才能进入serving
状态。在达到该状态之前,可以看到相同的错误。检查开发人员控制台中的status of the app's indexes。在Updating indexes中也提到过。