Objectify 4过滤器无法正常工作

时间:2012-10-13 08:59:43

标签: java google-app-engine objectify

我正在尝试做一个简单的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

1 个答案:

答案 0 :(得分:10)

检查您是否在该字段上有@Index,如果您尝试按没有索引的字段进行选择,即使它在那里也会为空。 在几个领域,你当然需要索引所有这些领域。

*多个字段的索引将放在datastore-indexes.xml https://cloud.google.com/appengine/docs/java/config/indexconfig