目前,我从数据存储区获得Android应用程序的最高分如下:
Query query = pm.newQuery(PlayerPersistentData.class);
query.setOrdering("rating desc");
query.setRange(0, 25);
但是,我还想通过辅助列的计数来订购结果:
E.g。在普通的SQL中,它将是这样的:
select PlayerPersistentData.*, count(achievements) as achievements_count
from PlayerPersistentData
order by rating desc, achievements_count desc
成就在数据存储区中定义如下
@Persistent
private Set<Integer> achievements;
使用GAE数据存储区可以实现吗?如果是这样,我应该如何创建我的查询呢?
提前致谢
答案 0 :(得分:3)
您可以将方法addSort用于Query对象,如下所示:
query.addSort("rating", SortDirection.DESCENDING);
query.addSort("achievements", SortDirection.DESCENDING);
答案 1 :(得分:1)
您需要进行非规范化:将计数存储为您实体的单独字段,并对其进行查询。