我对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。
[编辑]
答案 0 :(得分:1)
JDOQL没有任何LIMIT修饰符。请改用RANGE。尝试SELECT FROM ORDER BY createdDate DESC RANGE 0,10。http://db.apache.org/jdo/jdoql_quickref.pdf