我跟随在本网站的文档:http://code.google.com/intl/sv-SE/appengine/docs/java/datastore/jdo/queries.html如何在java中使用JDO查询GAE时设置多个参数?
从那里我学会了如何使查询,但我似乎只能用一个参数来工作。下面是我如何成功地做它:
javax.jdo.Query q1 = pm.newQuery(Player.class);
q1.setFilter("isOpen == true");
List<Player> players = (List<Player>) q1.execute();
,其获取我所有的布尔ISOPEN Player对象==真。我可以用Long来做同样的事情,也可以。
这里的问题:当组合两种情况是这样的:
javax.jdo.Query q1 = pm.newQuery(Player.class);
q1.setFilter("isOpen == true && lastPing > 100");
List<Player> players = (List<Player>) q1.execute();
应用崩溃。下面是我收到的错误:从servlet的 com.google.appengine.api.datastore.DatastoreNeedIndexException
未捕获的异常:没有发现 匹配指数。该查询的建议索引是: datastore-index kind =“Player”ancestor =“false”source =“manual” property name =“isOpen”direction =“asc”property name =“lastPing” direction =“asc “datastore-index
那么,有没有人知道这是为什么发生?任何帮助是极大的赞赏。
ERRM,数据存储需求“lastPing”索引第一? – DataNucleus