我正在尝试做一个简单的JUnit测试来执行这样的查询:
Resource result = ofy().load().type(Resource.class).filter("raw =",
"/Bob/-/userId/-/").first().get();
if (result != null){
System.out.println("Resulting Resource raw =" + result.getRaw());
}
上面的查询结果为null
,但是当我使用id(Long类型)进行查询时,我得到了结果。当我坚持我想要的实体时
查询我记录了@Id
,值为1
,因此我使用id
进行了查询以检查:
Resource result =
ofy().load().type(Resource.class).filter("id =", 1).first().get();
if (result != null){
System.out.println("Resulting Resource raw =" + result.getRaw());
}
结果result.getRaw()
是/Bob/-/userId/-/
这真的很奇怪,从我的第一个查询开始,结果应该不是null
?
答案 0 :(得分:10)
检查您是否在该字段上有@Index,如果您尝试按没有索引的字段进行选择,即使它在那里也会为空。 在几个领域,你当然需要索引所有这些领域。
*多个字段的索引将放在datastore-indexes.xml https://cloud.google.com/appengine/docs/java/config/indexconfig
中