GoogleAppEngine的GQL在Java代码中不起作用

时间:2014-06-15 19:15:05

标签: java google-app-engine google-cloud-datastore jdo gql

我对GQL for GoogleAppEngine有点问题。 如果我在我的数据存储上执行此查询:

SELECT * FROM CoursePO ORDER BY createdDate DESC LIMIT 4;

它正确地向我显示了最多4个结果的响应(无论你想要什么元组......)。当我在我的Java代码中执行相同的查询时,结果是不同的。有谁知道为什么?我在下面发布了执行相同查询的方法。

PersistenceManager pm = PMF.get().getPersistenceManager();
Query q = pm.newQuery("SELECT FROM " + CoursePO.class.getName() + " ORDER BY createdDate DESC LIMIT 4");
List<CoursePO> results = (List<CoursePO>)q.execute();
LOGGER.warning("Size: " + results.size()); //This size is greather than 4!! :-(
pm.close();
return results;

非常感谢你提前

[编辑] 我想知道,这个问题如何下降 - 你认为这是一个愚蠢的问题吗?你觉得我错了吗?在判断之前尝试一下!

[已添加信息] 结果内容与简单的查询q = pm.newQuery(CoursePO.class)相同;所以,实体内的所有元素。唯一不同的是ORDER BY DESC子句完美地运行,但不适用于LIMIT 4。

[编辑]

GQL Syntax from Google App Engine

1 个答案:

答案 0 :(得分:1)

JDOQL没有任何LIMIT修饰符。请改用RANGE。尝试SELECT FROM ORDER BY createdDate DESC RANGE 0,10。http://db.apache.org/jdo/jdoql_quickref.pdf