Java 从GAE数据存储中选择单个不同的列并按日期排序
我的数据存储包含以下结构Java 从GAE数据存储中选择单个不同的列并按日期排序,java,google-app-engine,google-cloud-datastore,jdoql,Java,Google App Engine,Google Cloud Datastore,Jdoql,我的数据存储包含以下结构 | id | date | property | |:-------------------------------------|--------------:|:---------: | | 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1503556140000 | 9184675510 | | 78c94c24-8895-11e7-bb3
| id | date | property |
|:-------------------------------------|--------------:|:---------: |
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1503556140000 | 9184675510 |
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1503469740000 | 9184675510 |
| 78c94c24-8895-11e7-bb31-be2e44b06b34 | 1504074540000 | 9184675510 |
| 7bbb1056-8896-11e7-bb31-be2e44b06b34 | 1503556140000 | 9184675510 |
| 836ea8a8-8896-11e7-bb31-be2e44b06b34 | 1498804140000 | 9184675510 |
| 836ea8a8-8896-11e7-bb31-be2e44b06b34 | 1501396140000 | 9184675510 |
我正在尝试从数据存储中筛选与“property”相关的不同id,并使用以下JDO查询按日期排序
String queryString = SELECT DISTINCT id FROM com.test.pkg.jdo.TestJDO WHERE property == '9184675510' ORDER BY date DESC
Query query = persistenceManager
.newQuery( queryString );
query.setRange(0,10);
List<String> response = query.execute();
String queryString=从com.test.pkg.jdo.TestJDO中选择不同的id,其中属性=='9184675510'按日期排序描述
Query=persistenceManager
.newQuery(queryString);
query.setRange(0,10);
List response=query.execute();
我已将范围设置为10以获取10个不同的ID,但查询响应返回的ID小于10,即使数据存储包含此筛选器的更多记录
考虑到设置的范围,查询是否可能只扫描10条记录并返回其中的不同ID。
是否有其他方法可以使用低级API完成此查询
任何想法都会有帮助。从com.test.pkg.jdo.TestJDO中选择COUNT(distinct id)的
属性=='9184675510'返回什么?你在哪里设置的范围?我们需要查看该代码。从com.test.pkg.jdo.TestJDO中选择DISTINCT id,其中property==“9184675510”ORDER BY date DESC
返回DISTINCT id列表(字符串)。添加了代码从com.test.pkg.jdo.TestJDO属性=='9184675510'
返回的选择计数(不同id)有什么作用?你在哪里设置的范围?我们需要查看该代码。从com.test.pkg.jdo.TestJDO中选择DISTINCT id,其中property==“9184675510”ORDER BY date DESC
返回DISTINCT id列表(字符串)。添加了代码