5

我正在尝试使用 GQL 从数据存储中获取一些数据。

当我SELECT * FROM Kind提出请求时,它会起作用并且我会取回数据。

但是,当我尝试:

SELECT * FROM kind where num < 1234

我收到一个不允许的文字错误。

我什至尝试用引号来做到这一点:

SELECT * FROM kind where num < '1234'

但我得到同样的错误。

有没有人遇到过这个?

这是代码:

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,             
          "SELECT * FROM " + kind + " WHERE num < '100'"
          ).build();
  QueryResults<Entity> results = datastore.run(query);
  while (results.hasNext()) {
    Entity result = results.next();
   myList.add(result.getString("num"));
4

1 回答 1

3

您需要绑定查询参数,而不是直接将其添加到查询中。

Query<Entity> query = Query.gqlQueryBuilder(Query.ResultType.ENTITY,             
                          "SELECT * FROM " + kind + " WHERE num < @num")
                      .setBinding("num", 100)
                      .build();
QueryResults<Entity> results = datastore.run(query);
while (results.hasNext()) {
    Entity result = results.next();
    myList.add(result.getString("num"));
...
于 2016-06-15T14:29:01.103 回答