GQL 不允许文字错误,google 数据存储区
GQL disallowed literal error, google datastore
我正在尝试使用 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"));
您需要绑定查询参数,而不是直接将其添加到查询中。
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"));
...
我正在尝试使用 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"));
您需要绑定查询参数,而不是直接将其添加到查询中。
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"));
...