【发布时间】:2010-06-29 20:03:55
【问题描述】:
我在 java 中使用低级数据存储接口。我有一个存储密钥集合的实体。我想查询数据存储以获取集合中的所有实体。但是,我还想在创建的日期属性上对它们进行排序。所以,我想做这样的事情:
Query query = new Query(EndeavorUpdate.ENDEAVOR_UPDATE_ENTITY_TYPE);
//getEndeavorUpdateIds() returns a List < Key >
query.addFilter("__key__", Query.FilterOperator.EQUAL, getEndeavorUpdateIds());
query.addSort(EndeavorUpdate.CREATED_DATE_PROPERTY);
PreparedQuery pq = ds.prepare(query);
但是,我得到一个例外,说“不允许值的集合”。如果我使用 IN 而不是 EQUAL,它确实有效,但这似乎非常低效。
有没有办法有效地执行此查询,或者我应该从数据存储中获取所有实体并自己进行排序?
【问题讨论】:
标签: java google-app-engine google-cloud-datastore