通过App Engine

时间:2016-03-08 01:57:49

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

我正在尝试基于实体的App Engine属性在@id中进行查询,并且我一直收到此错误

  

java.lang.IllegalArgumentException:__ key __ filter value必须是Key

这就是我查询的方式

Filter f1 = new FilterPredicate("personId", FilterOperator.EQUAL,personId);
Filter f2 = new FilterPredicate(Entity.KEY_RESERVED_PROPERTY, FilterOperator.GREATER_THAN,newestCommentId);

Filter filter = CompositeFilterOperator.and(f1,f2);


Query<Record> query = ofy().load().type(Record.class).filter(filter)
                .limit(limit).order("-"+ Entity.KEY_RESERVED_PROPERTY);

我想让所有>获取发送到应用引擎方法的最后一条评论ID

实体中的id字段是

@Id
Long id;

我首先尝试使用id然后我收到一个错误,说你不能使用有@id的文件,也许我的意思是__ key __

那么如何执行此查询呢?

1 个答案:

答案 0 :(得分:1)

您的过滤器中需要use a Key,而不是ID。您可以从此ID创建一个密钥,然后传递给您的过滤器。

请注意,除非您自己增加ID,否则无法保证在添加更多实体时增加ID。