在Java中的App Engine数据存储区中按键过滤

Rob*_*een 4 google-app-engine

你会认为这是一个容易回答的问题.

在Java中,我如何按实体的密钥过滤(不是恰好属于类型的属性Key,而是其实际密钥 - 我们称之为关系数据库域中的"主键")?

我不希望使用特定密钥获得单个实体.我实际上确实想要做一个过滤器并返回实体的子集.

Pet*_*ego 8

诀窍是使用Entity.KEY_RESERVED_PROPERTY代替属性名称:

Query q = new Query("MyEntity");
q.setFilter(new Query.FilterPredicate(Entity.KEY_RESERVED_PROPERTY, 
                Query.FilterOperator.GREATER_THAN,
                KeyFactory.createKey("MyEntity", "somevalue")));
Run Code Online (Sandbox Code Playgroud)

这将找到MyEntity键大于的所有实体somevalue.